启动 powershell 后保留批处理脚本 运行
Keep batch script running after launching powershell within
我正在使用批处理脚本来自动执行许多我必须在计算机上 运行 完成的任务。
在批处理文件中,我有一个菜单,让您分别在每个任务之间进行选择或执行所有操作。
当我选择做所有事情时,在启动第一个 .ps1 之后它只会杀死我的 cmd window.
我找到了使 window 保持打开状态的方法,但脚本无法继续...
我还创建了一个 "master file" 来调用所有“.ps1”并尝试了这些命令:调用,/等待
通话功能有效,他们都开始了。所以我不明白为什么他们会在我的脚本中做同样的事情。
下面的 cmd 行在我的脚本中没有相互调用,因为我希望能够单独调用它们。
部分脚本我想 运行 正确:
echo Windows Layout
start /wait PowerShell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File ""%~dp0Customisation\Export_Import_Layout.ps1""' -Verb RunAs}"
echo Remove Unwanted Apps
start /wait PowerShell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File ""%~dp0Clean\RemoveAppx.ps1""' -Verb RunAs}"
wmic product where name="WinZip 22.5" call uninstall
ping -n 6 localhost >nul
Taskkill /IM /F "MicrosoftEdge.exe"
Taskkill /IM /F "MicrosoftEdgeCP.exe"
Taskkill /IM /F "MicrosoftEdgeSH.exe"
%~dp0Clean\MCPR.exe
master.bat 看起来像这样:
call PowerShell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File ""%~dp0InstallChocoAndApps.ps1""' -Verb RunAs}"
call PowerShell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File ""%~dp0Clean\RemoveAppx.ps1""' -Verb RunAs}"
任何提示都会被应用。
请记住我不是脚本专家。
谢谢
本
通过添加 start "" /wait 而不是 start /wait 设法解决了我的问题
我正在使用批处理脚本来自动执行许多我必须在计算机上 运行 完成的任务。 在批处理文件中,我有一个菜单,让您分别在每个任务之间进行选择或执行所有操作。 当我选择做所有事情时,在启动第一个 .ps1 之后它只会杀死我的 cmd window.
我找到了使 window 保持打开状态的方法,但脚本无法继续... 我还创建了一个 "master file" 来调用所有“.ps1”并尝试了这些命令:调用,/等待 通话功能有效,他们都开始了。所以我不明白为什么他们会在我的脚本中做同样的事情。 下面的 cmd 行在我的脚本中没有相互调用,因为我希望能够单独调用它们。
部分脚本我想 运行 正确:
echo Windows Layout
start /wait PowerShell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File ""%~dp0Customisation\Export_Import_Layout.ps1""' -Verb RunAs}"
echo Remove Unwanted Apps
start /wait PowerShell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File ""%~dp0Clean\RemoveAppx.ps1""' -Verb RunAs}"
wmic product where name="WinZip 22.5" call uninstall
ping -n 6 localhost >nul
Taskkill /IM /F "MicrosoftEdge.exe"
Taskkill /IM /F "MicrosoftEdgeCP.exe"
Taskkill /IM /F "MicrosoftEdgeSH.exe"
%~dp0Clean\MCPR.exe
master.bat 看起来像这样:
call PowerShell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File ""%~dp0InstallChocoAndApps.ps1""' -Verb RunAs}"
call PowerShell.exe -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File ""%~dp0Clean\RemoveAppx.ps1""' -Verb RunAs}"
任何提示都会被应用。 请记住我不是脚本专家。
谢谢
本
通过添加 start "" /wait 而不是 start /wait 设法解决了我的问题