我试图从powershell调用批处理脚本。 我使用的命令开始处理从powershell中调用批处理文件(其中批处理文件调用.exe)
Start-Process D:\Homeware\install.bat -wait
批处理文件调用.exe文件。
我的问题是启动过程工作正常,批处理文件被调用,而.exe文件没有触发。 INSTALL.BAT ..\InstallVersion\InstallVersion.exe
我试图从powershell调用批处理脚本。 我使用的命令开始处理从powershell中调用批处理文件(其中批处理文件调用.exe)
Start-Process D:\Homeware\install.bat -wait
批处理文件调用.exe文件。
我的问题是启动过程工作正常,批处理文件被调用,而.exe文件没有触发。 INSTALL.BAT ..\InstallVersion\InstallVersion.exe
Start-Process
默认的
内容开始在同一目录中调用的PowerShell实例的工作目录中的新进程。
因此,您不能在批处理文件中使用相对路径到您的.exe
文件。
如果路径,就是要相对批处理文件的位置,调用.exe
从您的批处理文件,如下所示:
"%~dp0..\InstallVersion\InstallVersion.exe"
%0
包含这个批处理文件的文件路径和修饰符~dp
从该路径提取驱动器(d
)和目录路径(p
,包括尾随\
)部分。
如果您不能编辑批处理文件,只需确保工作目录设置为在批处理文件所在的目录,使用Start-Process
'-WorkingDirectory
参数:
Start-Process D:\Homeware\install.bat -wait -WorkingDirectory D:\Homeware
使用绝对路径在批处理文件中加载可执行文件以查看是否有所作为。您也可以使用echo命令进行调试。 –
如果批处理文件的唯一内容是要调用exe的行,为什么不从PowerShell启动exe? (这里是部分加载的问题)如果bat文件包含更多内容,则可能会显示更多详细信息将有助于澄清您的问题,以便SO上的人可以更好地帮助您。 –