Donc, je n'ai pas beaucoup d'expérience avec les scripts batch et j'utilise beaucoup les langages de programmation habituels. J'essaye d'écrire quelque chose de très simple et je ne comprends pas pourquoi la moitié de mon code ne s'exécute pas comme je l'espère. Peut-être que je romps une règle cardinale dans les scripts Windows Batch. À l'heure actuelle, le code ci-dessous crée simplement le nouveau répertoire, puis le script semble s'arrêter et ne pas terminer le code impliquant l'heure, la copie ou l'effacement d'un fichier. Quelqu'un voit ce qui ne va pas avec ce code?Partie du code dans le fichier batch Windows n'exécutant pas
@echo off
rem check for directory
if not exist fileDir (
mkdir fileDir
)
rem check for file...
if file.txt exists (
REM get computer name
set hostName = echo %computername%
rem get time format
SET HOUR=%time:~0,2%
SET dtStamp9=%date:~-4%%date:~4,2%%date:~7,2%_0%time:~1,1%%time:~3,2%%time:~6,2%
SET dtStamp24=%date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%
if "%HOUR:~0,1%" == " " (SET dtStamp=%dtStamp9%) else (SET dtStamp=%dtStamp24%)
type file.txt >> ./fileDir/%hostName%_%dtStamp%.LOG
REM clearing file contents of file.txt.
break > file.txt
)
Je ne suis pas un expert en traitement par lots, mais en haut vous avez écrit «si n'existe pas fileDir». Plus tard, vous avez écrit 'if file.txt exists' il semble que votre syntaxe soit incohérente. Essayez '' si existe fichier.txt' ' – HLL
@KenWhite: précisément. La commande 'break' ne montre rien, donc la redirection crée un fichier vide, c'est-à-dire" effacer le contenu du fichier file.txt ". – Aacini
@Aacini: Ah, bien. :-) J'ai vérifié pour voir si break a fait quelque chose, mais n'a pas vérifié la sortie. Merci. :-) –