Je suis conscient que je peux obtenir le résultat de cette manière (pour capturer les erreurs standard et les erreurs):
[batchFilePath] > [logFilePath] 2>&1
Ou de cette façon pour la sortie standard:
C:\MyBatchFile.bat > output.txt
Mais existe-t-il un moyen de le faire sans spécifier l'emplacement du fichier batch lui-même?
Par exemple, supposons que j’exécute (il suffit de cliquer deux fois pour exécuter) C:\MyFolder\MyBatch.cmd et, une fois que j’ai quitté le fichier de commandes (ou il est terminé), je peux trouver la sortie dans C:\MyFolder\MyBatch.txt.
Si oui, quel code devrais-je inclure dans le fichier de commandes lui-même?
La seule solution à laquelle je peux penser consiste à ajouter >> output.txt
à la fin de chaque commande, ce qui permet de générer un élément 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
.
Placez vos commandes entre parenthèses. MyBatchFile.bat
:
@echo off
REM setlocal enabledelayedexpansion
(
echo line one
echo line two
echo line three
) > "%~dpn0.txt"
Les variables entre crochets sont évaluées en une seule fois lorsque (
est rencontré. Utilisez enabledelayedexpansion
pour retarder l'évaluation.