Question Vider la sortie du script de traitement par lots dans un fichier texte sans spécifier l'emplacement du fichier de commandes au préalable


Je suis conscient que je peux obtenir la sortie de cette façon (pour capturer à la fois standard et erreurs):

[batchFilePath] > [logFilePath] 2>&1

Ou de cette façon pour la sortie standard:

C:\MyBatchFile.bat > output.txt

Mais y a-t-il un moyen de le faire sans spécifier l'emplacement du fichier batch lui-même?

Par exemple, supposons que je cours (il suffit de double-cliquer pour exécuter) C: \ MyFolder \ MyBatch.cmd et après avoir quitté le fichier de commandes (ou s’il est terminé), je peux trouver la sortie dans C: \ MyFolder \ MyBatch.txt

Si oui, quel code dois-je inclure dans le fichier batch lui-même?


4
2017-07-17 12:37


origine




Réponses:


La seule solution à laquelle je peux penser ajoute >> output.txt à la fin de chaque commande générant quelque chose de votre fichier de commandes. Il ajoutera la sortie de votre fichier à la fin de output.txt

Ou créer un deuxième fichier batch dont le contenu serait .\MyBatchFile.bat > output.txt.


3
2017-07-17 12:46





Placez vos commandes entre parenthèses. MyBatchFile.bat:

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

9
2017-07-17 14:32



merci, m'a sauvé les tracas d'avoir à créer un wrapper - AdrianBR