我运行一个简短的脚本,从文本文件中的系统列表中删除几个本地文件。问题在于,当脚本运行时,如果系统在网络上不活动,则脚本会挂起,看起来像是永恒的。有没有办法缩短查询时间,以便脚本可以跳过非活动系统并继续到下一行?
function delete-remotefile {
PROCESS {
$file = "\\$_\c$\Windows\folderx\filename.txt"
if (test-path $file)
{
echo "$_ filename.txt exists"
Remove-Item $file -force
echo "$_ filename.txt file deleted"
}
$file = "\\$_\c$\Windows\folderx\filename2.txt"
if (test-path $file)
{
echo "$_ filename2.txt exists"
Remove-Item $file -force
echo "$_ filename2.txt file deleted"
}
}
}
Get-Content C:\Users\username\Desktop\systems.txt | delete-remotefile
pause
答案 0 :(得分:0)
为避免在不可用的系统上执行,只需将命令包装在Test-Connection
中即可。只有在系统可用时才会执行此操作。
<强>实施例强>
function delete-remotefile {
PROCESS {
if(Test-Connection $_)
{
$file = "\\$_\c$\Windows\folderx\filename.txt"
if (test-path $file)
{
echo "$_ filename.txt exists"
Remove-Item $file -force
echo "$_ filename.txt file deleted"
}
$file = "\\$_\c$\Windows\folderx\filename2.txt"
if (test-path $file)
{
echo "$_ filename2.txt exists"
Remove-Item $file -force
echo "$_ filename2.txt file deleted"
}
}
}
}