我有两个批处理文件。 第一个是通过 C# 代码启动的:
System.Diagnostics.Process.Start(System.Environment.CurrentDirectory + "\\Files\\myBat.bat", parameters + " > output.txt");
第二个球棒在第一个球棒内开始:
%MY_PATH%\secondBat.bat
第一个按预期运行,但第二个(第一个 bat 内部)的执行被忽略。 一切正常,直到这一点。
如果通过 cmd.exe 手动启动它确实有效 如果通过 C# 启动,它仅不起作用。
感谢帮助
编辑:这是输出:
C:\TheProg\XXXX\bin\Debug>C:\TheProg\XXXX\bin\Debug\secondBat.bat
它只是不执行
最佳答案
我已尝试重现您的问题。
我在 C:\simplebats
bat1.bat:
@echo off
echo "bat1 started"
C:\simplebats\bat2.bat
bat2.bat:
echo "bat2 started"
我按照您的方式从 visual studio 运行 bat1:
System.Diagnostics.Process.Start("C:\\simplebats\\bat1.bat", " > output.txt");
在我运行它之后,一个 output.txt
文件在我的 Debug
文件夹中创建(不在 simplebats
中)并且它有预期的两个行:
"bat1 started"
"bat2 started"
您绝对确定第二个 .bat 文件没有在您的情况下触发吗?也许您看不到它被触发是因为输出文件是在您的 Debug
文件夹中创建的?这是我唯一想到的..
关于c# - 从 C# 在批处理文件中运行批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24242508/