0

从 CSI 脚本获取脚本路径的最佳方法是什么?我希望能够#load从在不同目录中运行的脚本编辑我的脚本,并且仍然可以访问它自己的目录并且不受工作目录的影响。我在 docs 中找不到类似 nodejs 的__dirname常量。

4

1 回答 1

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()}");
于 2017-10-18T15:49:26.830 回答