Powershell generando un ejecutable en un archivo de texto

Estoy tratando de escribir un script de Powershell para el trabajo que tomará la salida de w32tm.exe \monitor y generará todo en un archivo de texto. Estoy probando el siguiente código, sin embargo, algo está mal ya que puedo crear el archivo de texto, pero no se escribe nada en él:

#Take output of w32tm.exe and output into a plain text file
$file = "C:\Documents and Settings\a411882\My Documents\Scripts\timeScript.txt"
$executable = "w32tm.exe /monitor"
invoke-expression $executable | out-file -filepath $file

¿Qué estoy haciendo mal aquí? Soy nuevo en Powershell, por lo que cualquier consejo sería muy apreciado.

EDITAR: puedo hacer que todos los datos se muestren en la consola cuando ejecuto esto, sin embargo, quiero que los datos se escriban en el archivo de texto.

EDIT 2: Logré que todo saliera finalmente. Quería intentar evitar usar el operador > para escribir en el archivo de texto con la esperanza de aprender un poco más sobre el cmdlet de archivo de salida, sin embargo, hacer un simple comando de expresión de invocación $ejecutable > $archivo logró hacer el trabajo. Todavía no entiendo por qué el cmdlet no funcionaría correctamente.

preguntado el 12 de junio de 12 a las 16:06

solo usando invoke-expression $executable darle la salida esperada a la consola? ¡Usando su código en mi sesión, cambiando solo la ruta a mi directorio de perfil, funciona! -

2 Respuestas

Quizás Invoke-Expression ¿No está enviando correctamente la salida a stdout? No esperaría eso, pero han sucedido cosas más extrañas. intenta correr w32tm.exe por sí mismo:

$file = "C:\Documents and Settings\a411882\My Documents\Scripts\timeScript.txt"
w32tm.exe /monitor | Out-File -FilePath $file

Respondido el 12 de junio de 12 a las 19:06

Podrías usar Start-Process lo que le permite redirigir también la salida de error:

Start-Process w32tm.exe -ArgumentList "/monitor" -Wait -RedirectStandardOutput "output.txt" -RedirectStandardError "error.txt"

Respondido el 04 de Septiembre de 19 a las 09:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.