Answers:
Powershell具有“ while”命令。您可以像在Linux中一样使用它:
而(1){您的命令;睡觉5}
Linux版本:
虽然是真的 做你的命令; 睡眠5; 做完了
其他:
while($ true){netstat -an | findstr 23560; 睡5; 日期}
while (1)
,因为这1
是事实。
我编写了这个小PowerShell模块来完成您想要的工作。放进去
C:\Users\[username]\Documents\WindowsPowerShell\Modules\Watch
并import-module watch
在PowerShell中运行。
# ---- BEGIN SCRIPT
# Author: John Rizzo
# Created: 06/12/2014
# Last Updated: 06/12/2014
# Website: http://www.johnrizzo.net
function Watch {
[CmdletBinding(SupportsShouldProcess=$True,ConfirmImpact='High')]
param (
[Parameter(Mandatory=$False,
ValueFromPipeline=$True,
ValueFromPipelineByPropertyName=$True)]
[int]$interval = 10,
[Parameter(Mandatory=$True,
ValueFromPipeline=$True,
ValueFromPipelineByPropertyName=$True)]
[string]$command
)
process {
$cmd = [scriptblock]::Create($command);
While($True) {
cls;
Write-Host "Command: " $command;
$cmd.Invoke();
sleep $interval;
}
}
}
Export-ModuleMember -function Watch
# --- END SCRIPT
Watch-Command
),别名为Watch
(Set-Alias -Name Watch -item Watch-Command
)。
当需要检查另一个进程正在积极处理的文件的文件大小时,我遇到了同样的问题。我最终在Windows上克隆了watch的功能。该站点上提供了已编译的exe以及源代码。