Domanda

Sto cercando di contare il contenuto di una cartella su un server remoto.

So che:

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

funziona una sorpresa.

Tuttavia, sto cercando di rendere il nome del server una variabile, per input dell'utente, ma non riesco a ottenere il percorso per accettare qualsiasi variabile.

È stato utile?

Soluzione

È piuttosto semplice:

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

Altri suggerimenti

Se lo stai facendo nella shell e vuoi un liner, prova questo:

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

Questo non produrrà un messaggio che richiede input, ma salva l'assegnazione a una variabile di cui potresti non aver bisogno, e se lo stai eseguendo dalla shell, conosci comunque l'input che è necessario!

Anche le citazioni doppie significheranno che viene valutata una variabile: quindi:

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

O come ha sottolineato Keith Hill:

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

Dove come citazioni singole non valuteranno la variabile quindi:

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

Quindi, se stai usando le variabili e hai spazi nell'uso del percorso "".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top