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

8

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 há uma maneira de fazer isso sem especificar o local do arquivo em lote?

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

Se sim, qual código eu precisaria incluir no próprio arquivo de lote?

    
por TMRW 17.07.2013 / 14:37

2 respostas

3

A única solução em que posso 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 .

    
por 17.07.2013 / 14:46
10

Coloque seus comandos entre colchetes. MyBatchFile.bat :

@echo off
REM setlocal enabledelayedexpansion

(
  echo line one
  echo line two
  echo line three
) > "%~dpn0.txt"

As variáveis dentro dos colchetes são avaliadas de uma só vez quando ( é encontrado. Use enabledelayedexpansion para atrasar a avaliação.

    
por 17.07.2013 / 16:32