下面的bat文件是由PowerShell脚本调用的,但是只有bat1.bat被执行,其他的bat2.bat和last.bat没有被调用
#first bat
Start-Process "C:\bat1.bat" -Wait
#run second bat
Start-Process "C:\bat2.bat" -Wait
#run last bat
cmd.exe /c '\last.bat'我们非常感谢您的支持。
发布于 2022-07-08 01:02:16
试着使用以下方法:
Set-Location C:\temp
Start-Process .\bat1.bat -Wait
Write-Host "bat1.bat DONE"
Start-Process .\bat2.bat -Wait
Write-Host "bat2.bat DONE"
cmd /c .\last.bat
Write-Host "last.bat DONE"我创建了以下.bat文件:
bat1.bat
@ECHO OFF
ECHO bat1
PAUSEbat2.bat
@ECHO OFF
ECHO bat2
PAUSEfinal.bat
@ECHO OFF
ECHO final当运行PS脚本时,所有3个都如人们所期望的那样运行。
如果前面的进程完成,放置写主机将显示在控制台中。
编辑:
我之前没有给出太多的解释,对不起。
您的问题是,其中一个.bat文件尚未完成。
您所使用的语法应该运行bat1.bat和bat2.bat。"cmd.exe /c“\last.bat将失败。如果不设置c:的路径,则需要"c:\last.bat”。如果要这样做,则需要".\last.bat“。
为了确保您的脚本能够工作,我创建了3个基本的.bat文件,这些文件的功能仅仅是记录与它们相关的字符串。这样做可以保证,如果出了什么问题,那就是PS代码,而不是.bat代码。
在验证您的脚本将运行后,我创建了我提供的脚本。使用设置位置是不必要的,但我认为它使代码看起来更清晰。每个进程之后的写主机将登录到脚本正在移动到下一个进程的PS控制台中。
发布于 2022-07-08 01:13:07
为什么不试试
CALL "C:\bat1.bat"
CALL "C:\bat2.bat"
\last.bat并完全避免使用强力气味?
https://stackoverflow.com/questions/72886544
复制相似问题