Pregunta

Estoy tratando de contar el contenido de una carpeta en un servidor remoto.

Yo sé eso:

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

Funciona un regalo.

Sin embargo, estoy tratando de hacer que el nombre del servidor sea una variable, por entrada del usuario, pero no puedo obtener la ruta para aceptar ninguna variable.

¿Fue útil?

Solución

Es bastante sencillo:

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

Otros consejos

Si está haciendo esto en el shell y desea una línea de una sola, intente esto:

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

Esto no producirá un mensaje solicitando información, pero guarda la asignación a una variable que puede no necesitar, y si está ejecutando esto desde el shell, ¡conoce la entrada que se necesita de todos modos!

También las cotizaciones dobles significarán que se evalúa una variable, así que:

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

O como Keith Hill ha señalado:

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

Donde, como citas individuales, no evaluarán la variable, así que:

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

Entonces, si está utilizando variables y tiene espacios en la ruta, use "".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top