在批处理文件中运行批处理文件
本文关键字:批处理文件 运行 | 更新日期: 2023-09-27 18:08:43
我得到了两个批处理文件。第一个是通过c#代码开始的:
System.Diagnostics.Process.Start(System.Environment.CurrentDirectory + "''Files''myBat.bat", parameters + " > output.txt");
第二个bat在第一个bat里面开始:
%MY_PATH%'secondBat.bat
第一个按预期运行,但第二个(在第一个bat内)的执行被忽略。在此之前一切正常
如果通过cmd.exe手动启动,它确实工作
Thanks for help
编辑:这是输出:
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");
在我运行它之后,在我的Debug
文件夹(不是在simplebats
)中创建了一个output.txt
文件,它有预期的两行:
"bat1 started"
"bat2 started"
你绝对确定在你的情况下第二个。bat文件没有被触发吗?也许你看不到它被触发,因为输出文件是在你的Debug
文件夹中创建的?这是我唯一想到的一件事
尝试使用cmd.exe启动批处理文件,并提供包含批处理文件参数的路径,作为System.Diagnostics.Process.Start
的参数
System.Diagnostics.Process.Start("cmd.exe" , System.Environment.CurrentDirectory + "''Files''myBat.bat" + parameters + " > output.txt");