使用 Get-SmbOpenFile 执行直到
Do Until with Get-SmbOpenFile
我正在尝试检查是否有任何文件在使用 powershell 的服务器上打开。
我有下面的脚本哪种有效
如果我在没有文件打开时启动它,它会先检查,等待 10 秒,然后打印消息 "No files are opened"。如果我打开任何文件并启动脚本,它会显示 "Files are opened, please wait..." 但是当我关闭所有文件并断开所有会话时,它仍然显示相同的
Clear-Host
$CheckOpenfiles = Get-SmbOpenFile
Do
{
"$(get-date) Files are opened, please wait..."
Start-Sleep 10
} Until (!$CheckOpenfiles)
"No files are opened"
正如 LotPings 在评论中指出的那样,在开始循环之前将您的值分配给 $CheckOpenfiles
。这意味着它不会在您的 Until 条件中重新评估。
Do {
"$(get-date) Files are opened, please wait..."
Start-Sleep 10
} Until (!(Get-SmbOpenFile))
"No files are opened"
我正在尝试检查是否有任何文件在使用 powershell 的服务器上打开。 我有下面的脚本哪种有效
如果我在没有文件打开时启动它,它会先检查,等待 10 秒,然后打印消息 "No files are opened"。如果我打开任何文件并启动脚本,它会显示 "Files are opened, please wait..." 但是当我关闭所有文件并断开所有会话时,它仍然显示相同的
Clear-Host
$CheckOpenfiles = Get-SmbOpenFile
Do
{
"$(get-date) Files are opened, please wait..."
Start-Sleep 10
} Until (!$CheckOpenfiles)
"No files are opened"
正如 LotPings 在评论中指出的那样,在开始循环之前将您的值分配给 $CheckOpenfiles
。这意味着它不会在您的 Until 条件中重新评估。
Do {
"$(get-date) Files are opened, please wait..."
Start-Sleep 10
} Until (!(Get-SmbOpenFile))
"No files are opened"