Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[DOS] Problème affichage

5 réponses
Avatar
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

5 réponses

Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
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
Avatar
Nesta
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]" a
é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





Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
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
Avatar
JF
*Bonjour Nesta * !
<news:

ç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
Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonsoir !

Corriger ainsi :
(>) vs (>>)



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

@+
--
MCI