2017-10-18 12 views
1

CSIスクリプトからスクリプトのパスを取得する最適な方法は何ですか?スクリプトを別のディレクトリで実行しているスクリプトから#loadにしても、自分のディレクトリにアクセスでき、作業ディレクトリの影響を受けないようにしたいと考えています。 nodejsの__dirname定数in the docsのようなものは見つかりません。CSIで現在実行中のスクリプトのパスまたはディレクトリを取得するにはどうすればよいですか?

答えて

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()}"); 
関連する問題