2016-03-17 182 views
1

我试图从powershell调用批处理脚本。 我使用的命令开始处理从powershell中调用批处理文件(其中批处理文件调用.exe)

Start-Process D:\Homeware\install.bat -wait

批处理文件调用.exe文件。

我的问题是启动过程工作正常,批处理文件被调用,而.exe文件没有触发。 INSTALL.BAT ..\InstallVersion\InstallVersion.exe

+1

使用绝对路径在批处理文件中加载可执行文件以查看是否有所作为。您也可以使用echo命令进行调试。 –

+0

如果批处理文件的唯一内容是要调用exe的行,为什么不从PowerShell启动exe? (这里是部分加载的问题)如果bat文件包含更多内容,则可能会显示更多详细信息将有助于澄清您的问题,以便SO上的人可以更好地帮助您。 –

回答

2

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 
+0

谢谢mklement0有无论如何我可以做到这一点,而无需编辑.bat文件。你的答案奏效了,我现在可以调用批处理文件 – samjerry

+1

非常感谢你:)它工作正常 – samjerry

相关问题