J'écris un fichier batch pour mettre à niveau certains systèmes. J'ai besoin d'analyser une date à partir d'un fichier XML et de l'enregistrer pour l'utiliser plus tard dans le fichier. Le format de la date est aaaa \ MM \ jj.Fichier de traitement par lots ErrorLevel woes
Ce que j'ai à ce jour est:
@echo off
setLocal DisableDelayedExpansion
for /f "tokens=* delims= " %%G in (ConnectionManagement.xml) do (
set str=%%G
set mydate=%%G
echo got-
echo %%G
echo %mydate%
PAUSE
ECHO %mydate%|findstr /R /C:[0-9][0-9][0-9][0-9]\\[0-9][0-9]\\[0-9][0-9] > nul
IF ERRORLEVEL 0 goto valueok
)
echo DONE
PAUSE
goto end
:valueok
echo VALUEOK
:end
PAUSE
Malheureusement, ce mal reconnu l'en-tête xml comme une date valide; mais je pense que cela est à faire avec ErrorLevel étant réinitialisé (?). mydate n'est pas défini et reconnaît la variable vide mydate comme une correspondance (!! ??). La sortie est:
got-
<?xml version="1.0" encoding="utf-8"?>
ECHO is off.
Press any key to continue . . .
VALUEOK
Press any key to continue . . .
...
Obtenir assez désespérée pour trouver une solution. merci ...
Ok, cela a fonctionné. Merci. Maintenant, qu'en est-il de mydate n'étant pas réglé correctement. Est-ce que je fais quelque chose de mal ici? – kreid
@Joey D'où mon commentaire «au moins, si vous attendez seulement des erreurs positives» ;-) –
Ah, désolé; négligé celui-là :) – Joey