在批处理文件中运行批处理文件

本文关键字:批处理文件 运行 | 更新日期: 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

中创建了test .bat文件
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");