我有一个运行批处理文件的非常简单的方法。方法是这样的:
private string _binnPath = Application.StartupPath + "\\Binn";
public void DumpFileSystem(string snapshotFolder)
{
var cwd = Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(_binnPath);
var snapshotOutput = Path.Combine(Application.StartupPath, snapshotFolder);
snapshotOutput = Path.Combine(snapshotOutput, DateTime.UtcNow.Ticks + "-files.txt");
var batCommand = _binnPath + "\\DumpFileSystem.bat";
string batFilename = batCommand + " " + snapshotOutput;
using (var process = Process.Start(batFilename))
{
process?.WaitForExit();
}
Directory.SetCurrentDirectory(cwd);
}
批处理文件是:
dir /s c:\ > %1
在var batCommand = _binnPath + "\\DumpFileSystem.bat";
行上我收到了这个:
未处理的类型' System.ComponentModel.Win32Exception' 发生在System.dll
中附加信息:系统找不到指定的文件
这根本没有意义,因为我只分配一个变量。 我想要做的就是使用snapshotOutput变量运行批处理文件。 这不应该那么困难。
问题
如何运行批处理文件?和
为什么变量的设置甚至不能查找文件时会抛出错误?
答案 0 :(得分:2)
删除这些代码
Process.Start(new ProcessStartInfo(batCommand , snapshotOutput))
你必须改变流程开始
{{1}}
答案 1 :(得分:1)