我有这个脚本:
$params = '/r', '/f',
'/t', '0',
'/d', 'p:0:0',
'/c', 'PlannedRestart'
$servers | ForEach-Object {
$output = & shutdown.exe /m "\\${_}" @params 2>&1
if ($LastExitCode -eq 0) {
"{0}`tRestarted" -f $_
} else {
"{0}`tRestart failed:`t{1}" -f $_, $output
}
} | Set-Content '.\RestartServers_LOG.txt'
在失败时打印如下:
server1重新启动失败:server1:错误
我要打印:
server1重新启动失败:错误
答案 0 :(得分:4)
如果主机名始终出现在捕获的输出的开头,则可以通过简单替换将其删除,例如像这样:
"{0}`tRestart failed:`t{1}" -f $_, ($output -replace "^${_}:")
如果它可以出现在输出字符串的不同位置,则需要提供一个更完整的输出示例。