我正在尝试从c#运行批处理文件。目的是在批处理文件执行时创建一个简单文件。似乎它不起作用。
这是批处理文件代码
one.bat
echo %*
copy NUL EmptyFile.txt
pause
C#代码
System.Diagnostics.Process.Start("cmd.exe", "/c C:\\Users\ABC\\Desktop\\F1\\one.bat \"a\" b c ");
C#代码运行正常并且似乎调用bat文件,但批处理文件中的新文件未创建。
我在这里错过了什么吗?
由于
答案 0 :(得分:1)
您没有指定EmptyFile.txt
应该去哪里,所以它试图将它放在默认的工作目录中,该目录恰好是Windows的system32目录,该进程可能无权访问。< / p>
您可以在bat文件中使用完整路径(copy NUL C:\Temp\EmptyFile.txt
)或更改代码以使用ProcessStartInfo
对象,并将WorkingDirectory
设置为您想要的任何内容。