[DOS] Problème affichage

Le
Nesta
Bonjour à tous,

Je suis en train de faire un petit script qui récupère des fichiers pour les
traiter par la suite.
Je souhaite créer une variable qui récupère la date de la veille.
Voici un bout de mon code :

@echo off
REM Déclaration des variables
set Jour=%date:~0,2%
If Not %date:~0,2% EQU 01 set /A Veille = %Jour%-1
if %Veille% LSS 10 Veille =0%Veille%
set Mois=%date:~3,2%
set Annee=%date:~6,4%


Je déclare 4 variables :
Jour : récupère le jour en cours
Veille : récupère la veille du jour en cours (exemple : on est aujourd'hui
le 15 ; Veille sera égale à 14)
Mois : récupère le mois en cours
Annee : récupère l'année en cours.

Tout ceci à partir de %date%.
Mon problème est le suivant : j'ai un souci avec les jours du 01 au 09. Avec
le jour 05, Veille est égale à 5, et non pas 05, ce qui est très gênant pour
moi.
J'ai essayé de solutionner le problème en faisant : if %Veille% LSS 10
Veille =0%Veille%, mais ça ne fonctionne pas, j'ai toujours 5 quand je fais
un echo.
Est-ce que quelqu'un pourrait m'apporter une solution svp ? Merci d'avance à
tous.


Nesta
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #17749291
Bonsoir !

En utilisant la même technique que Gilles Laurent, on peut faire ça :

@echo off
setlocal
echo var hhier=new Date(new Date()-86400000);>%TEMP%hier.js
echo
WScript.StdOut.Write(""+hhier.getFullYear()+(hhier.getMonth()+1)+hhier.getDate(hhier));>%TEMP%hier.js
for /F %%i in ('cscript //B %TEMP%hier.js') do set HIER=%%i
echo Hier = %HIER%
endlocal

@-salutations
--
Michel Claveau
Nesta
Le #17754461
Bonjour Michel !

Merci beaucoup pour ta réponse.
Cependant, je ne suis pas sûr d'avoir tout compris.... je suis un newbie,
j'ai oublié de préciser :-)
J'ai testé le bout de code que tu m'a donné et ça n'a pas fonctionné.
"WScript.StdOut.Write" : c'est du DOS ?

Quand j'exécute, il ne m'affiche rien.
Pourrais-tu m'apporter un peu plus de précisions stp ? Merci d'avance.


Nesta



"MCI (ex do ré Mi chel la si do) [MVP]" écrit dans le message de groupe de discussion :

Bonsoir !

En utilisant la même technique que Gilles Laurent, on peut faire ça :

@echo off
setlocal
echo var hhier=new Date(new Date()-86400000);>%TEMP%hier.js
echo
WScript.StdOut.Write(""+hhier.getFullYear()+(hhier.getMonth()+1)+hhier.getDate(hhier));>%TEMP%hier.js
for /F %%i in ('cscript //B %TEMP%hier.js') do set HIER=%%i
echo Hier = %HIER%
endlocal

@-salutations
--
Michel Claveau





MCI \(ex do ré Mi chel la si do\) [MVP]
Le #17759871
Re !

Le batch cité a été reformaté par le mode "plain/text" (texte brut) ;
notamment par l'injection de passages à la ligne intempestifs.

C'est pour cela que j'ai ajouté trois espaces en début des lignes. Si
une
ligne ne commence pas par ces espaces, c'est qu'elle est la suite de la
ligne précédente.
Pour info, le batch ne contient que sept (7) lignes.

@-salutations
--
Michel Claveau
JF
Le #17776931
*Bonjour Nesta * !

ça n'a pas fonctionné.



Corriger ainsi :
... +hhier.getDate(hhier));>%TEMP%hier.js
==> +hhier.getDate(hhier));>>%TEMP%hier.js

La première redirection (>) crée le fichier hier.js
La seconde redirection (>>) ajoute une ligne au fichier.


--
Salutations, Jean-François
Index de la FAQ XP de Panthère Noire : www.d2i.ch/pn/az
Un problème difficile à décrire ? http://fspsa.free.fr/copiecran.htm
Participer à la dure lutte www.malekal.com/ProjetAntiMalwares.php
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #17778241
Bonsoir !

Corriger ainsi :
(>) vs (>>)



Oui, j'ai m...é dans le copié/collé (cause : ajout des espaces).
Merci d'avoir signalé la correction.

@+
--
MCI
Publicité
Poster une réponse
Anonyme