2

我正在尝试计算远程服务器上文件夹的内容。

我知道:

Get-ChildItem \\ServerName\c$\foldername -recurse | Measure-Object -property length -sum

工作一种享受。

但是,我试图通过用户输入使服务器名称成为变量,但我无法获得接受任何变量的路径。

4

2 回答 2

7

这很简单:

$server = Read-Host "Enter server name"
Get-ChildItem \\$server\users -recurse | measure-object length -sum
于 2009-12-15T15:54:44.920 回答
2

如果您在 shell 中执行此操作并且想要单行,请尝试以下操作:

Get-ChildItem "\\$(Read-Host)\share" -recurse | Measure-Object length -sum

这不会产生要求输入的消息,但会保存分配给您可能不需要的变量,如果您从 shell 运行它,那么您知道无论如何都需要输入!

双引号也意味着对变量进行评估,因此:

$hello = "Hello World"
Write-Host "$hello"
Hello world

或者正如基思希尔指出的那样:

$hello = "Hello World"
Write-Host $hello
Hello World

由于单引号不会评估变量,所以:

$hello = "Hello World"
Write-Host '$hello'
$hello

因此,如果您使用变量并且路径中有空格,请使用“”。

于 2009-12-17T21:36:16.033 回答