【发布时间】:2018-01-12 17:18:54
【问题描述】:
我有很多 ps1 scipts,我一个一个手动执行,它们的语法中有 $ErrorActionPreference = "Stop",所以如果出现问题,它们会停止。
我需要帮助的是创建一个可以顺序运行所有这些脚本的 ps1 脚本。因此,如果一个脚本失败,“主脚本”必须停止并且不能继续执行下一个脚本。
【问题讨论】:
标签: powershell
我有很多 ps1 scipts,我一个一个手动执行,它们的语法中有 $ErrorActionPreference = "Stop",所以如果出现问题,它们会停止。
我需要帮助的是创建一个可以顺序运行所有这些脚本的 ps1 脚本。因此,如果一个脚本失败,“主脚本”必须停止并且不能继续执行下一个脚本。
【问题讨论】:
标签: powershell
如果您有 4 个文件,例如:
1WriteHello.ps1
Write-Host "Hello " -NoNewLine
2WriteWorld.ps1
Write-Host "World!"
3WriteError.ps1
Write-Error "Something went wrong."
4WriteANumber.ps1
Write-Host "123"
你可以用命令运行它:
$ErrorActionPreference = 'Stop'; Get-Item 'C:\Path\*.ps1' |% { & $_.FullName }
在你的例子中:
$Scripts = 'D:\temp\download_script.ps1', 'D:\temp\upload_script.ps1', 'D:\temp\reset_scripts.ps1'
$ErrorActionPreference = 'Stop'
$Scripts |% { & $_ }
【讨论】:
%是ForEach-Object的别名