Questão Saída de script em lote de despejo em um arquivo de texto sem especificar a localização do lote em lote


Estou ciente de que posso obter a saída dessa maneira (para capturar os padrões e os erros):

[batchFilePath] > [logFilePath] 2>&1

Ou desta forma para saída padrão:

C:\MyBatchFile.bat > output.txt

Mas existe uma maneira de fazer isso sem especificar o local do arquivo em lotes?

Por exemplo, suponha que eu executo (apenas doubleclick para executar) C: \ MyFolder \ MyBatch.cmd e depois que eu sair do arquivo em lote (ou conclui) eu posso encontrar a saída em C: \ MyFolder \ MyBatch.txt

Em caso afirmativo, qual código eu precisaria incluir no próprio arquivo de lote?


4


origem




Respostas:


A única solução que consigo pensar é adicionar >> output.txt no final de cada comando que produz algo do seu arquivo de lote. Ele adicionará a saída do seu arquivo no final de output.txt

Ou criar um segundo arquivo de lote cujo conteúdo seria .\MyBatchFile.bat > output.txt.


3





Coloque seus comandos entre colchetes. MyBatchFile.bat:

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

9



obrigado, me salvou do incômodo de ter que criar um wrapper - AdrianBR