Как мне получить путь или каталог моего текущего выполняющегося скрипта в CSI?

Каков наилучший способ получить путь моего сценария из сценария CSI? Я хочу, чтобы мой сценарий был #load редактируется из скрипта, работающего в другом каталоге, и все же получает доступ к своему собственному каталогу и не подвержен влиянию рабочего каталога. Я не могу найти ничего похожего на nodejs __dirname постоянная в документах.

1 ответ

В настоящее время я могу найти лучший способ выяснить каталог исполняемого скрипта в данный момент. Интересно, есть ли какой-нибудь ярлык / встроенный, о котором я не знаю, но здесь идет:

GetMineDirectory.csx:

#!/usr/bin/env csi

using System;
using System.IO;
using System.Runtime.CompilerServices;

static string GetMyPath(
    [CallerFilePath] string path = "")
    => path;

// Do not write in terms of GetMyPath() in case we are called from another script.
static string GetMyDirectory(
    [CallerFilePath] string path = "")
    => Path.GetDirectoryName(path);

Console.WriteLine($"My full path is {GetMyPath()}");

Console.WriteLine($"My directory is {GetMyDirectory()}");
Другие вопросы по тегам