无论如何都可以获取我在 C# 代码中执行的 VBScript 的当前目录吗?



我正在使用Files库在C#中创建一个文件。例如,我有一些vbscript,它指定文件名并调用C#代码,C#负责创建文件("C:\Users\temp\abc.txt"(以及我想在vbscript中指定文件名为(".\abc.txt"(的IF,并希望C#能够在vbscript目录中创建文件。

选项1:在运行C#程序之前,将VBScript和C#程序保持在同一目录中,并将其设置为vbs中的当前目录。这将允许您在两个程序中使用相同的相对路径。

Const Visible = 1
Const Hidden = 0
Const WaitForCompletion = True
Set oWSH = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
oWSH.CurrentDirectory = oFSO.GetParentFolderName(WScript.ScriptFullName)
oWSH.Run "mycsprog.exe", Visible, WaitForCompletion

选项2:将当前目录作为参数传递给C#程序:

Const Visible = 1
Const Hidden = 0
Const WaitForCompletion = True
Set oWSH = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
CurDir = oFSO.GetParentFolderName(WScript.ScriptFullName)
oWSH.Run "c:pathtoprogmycsprog.exe """ & CurDir & """", Visible, WaitForCompletion

C#:

string CurDir = args[0];

最新更新