在Powershell V2中获取Get-content的帮助时,我找不到-Wait参数。虽然我可以将此参数与相同的cmdlet一起使用。这肯定不是常见的参数之一。
NAME
Get-Content
SYNOPSIS
Gets the content of the item at the specified location.
SYNTAX
Get-Content [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force
] [-Include <string[]>] [-ReadCount <Int64>] [-TotalCount <Int64>] [-UseTransaction] [<CommonParameters>]
Get-Content [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Inc
lude <string[]>] [-ReadCount <Int64>] [-TotalCount <Int64>] [-UseTransaction] [<CommonParameters>]
我能找到的唯一的命令行开关,在Powershell V2中明确提到-Wait参数的地方是Start-process
get-content调用启动过程是否在引擎盖下?我如何在Get-content中使用-Wait参数?
这可能有助于发现“帮助”中未提及的其他参数,但可以与该cmdlet一起使用。 在此先感谢您的帮助!
答案 0 :(得分:5)
此版本的PowerShell中添加了此开关的文档。这是PS 4.0。
PS > Get-Help Get-Content -Parameter wait
-Wait [<SwitchParameter>]
Waits for the cmdlet to get the content before returning the command prompt. While waiting, Get-Content checks the
file once each second until you interrupt it, such as by pressing CTRL+C.
Wait is a dynamic parameter that the FileSystem provider adds to the Get-Content cmdlet. This parameter works only
in file system drives.
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
答案 1 :(得分:1)
看起来'raw'和'wait'都是动态参数。并且,'wait'在后台使用FileSystemWatcher。它等待更改的默认时间似乎是500毫秒。
一次,它超时;线程再睡眠100ms,然后寻找流的开始并丢弃缓冲区。
<强>参考:强> 通过阅读PowerShell MVP Oisin Grehan的博客“直接跳转到Cmdlet在Reflector中实现的技巧”'Reflect-Cmdlet'。
另外,请阅读以下问题:can we see the source code for PowerShell cmdlets
答案 2 :(得分:0)
正如@sqlchow指出的那样,-wait是get-content的动态参数,只能根据可用的文档Here与文件系统提供程序一起使用。
即,如果您在注册表提供程序中,则不能将此参数与get-content一起使用(至少在Powershell V2中)
PS C:\> cd HKLM:\
PS HKLM:\> Get-Content -Wait
Get-Content : A parameter cannot be found that matches parameter name 'Wait'.
我们可以看到注册管理机构提供商无法等待。
Ed Wilson在How to find Dynamic Paramters
上发表了一篇不错的博客文章