Pregunta Volcar el resultado del script por lotes en un archivo de texto sin especificar previamente la ubicación del archivo por lotes


Soy consciente de que puedo obtener la salida de esta manera (para capturar tanto el estándar como los errores):

[batchFilePath] > [logFilePath] 2>&1

O de esta manera para salida estándar:

C:\MyBatchFile.bat > output.txt

Pero, ¿hay alguna forma de hacerlo sin especificar la ubicación del archivo por lotes?

Por ejemplo, supongamos que ejecuto (solo haga doble clic para ejecutar) C: \ MyFolder \ MyBatch.cmd y después de salir del archivo por lotes (o se completa) puedo encontrar el resultado en C: \ MyFolder \ MyBatch.txt

Si es así, ¿qué código necesitaría incluir en el archivo por lotes?


4


origen




Respuestas:


La única solución en la que puedo pensar es agregar >> output.txt al final de cada comando que produce algo de su archivo por lotes. Agregará la salida de su archivo al final de output.txt

O crear un segundo archivo por lotes, cuyo contenido sería .\MyBatchFile.bat > output.txt.


3





Encierra tus comandos entre corchetes. MyBatchFile.bat:

@echo off
REM setlocal enabledelayedexpansion
(
echo line one
echo line two
echo line three
) > "%~dpn0.txt"

9



gracias, me salvó la molestia de tener que crear un envoltorio - AdrianBR