如何在powershell中的UNC路径中使用变量?

时间:2009-12-15 15:50:41

标签: powershell variables filepath

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

我知道:

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

是一种享受。

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

2 个答案:

答案 0 :(得分:7)

这很简单:

$server = Read-Host "Enter server name"
Get-ChildItem \\$server\users -recurse | measure-object length -sum

答案 1 :(得分:2)

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

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

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

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

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

正如Keith Hill所指出的那样:

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

单引号不会对变量进行评估:

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

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