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

シェルでこれを行っていて、ワンライナーが必要な場合は、これを試してください:

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

これにより、入力を求めるメッセージは生成されませんが、必要のない変数への代入を節約できます。これをシェルから実行している場合は、とにかく必要な入力がわかります!

また、二重引用符は、変数が評価されることを意味します。

$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 に答える