problème avec SET sous DOS

problème avec SET sous DOS - Win NT/2K/XP - Windows & Software

Marsh Posté le 01-03-2004 à 10:40:32    

Help!!!!
 
je suis tombé sur un message sur le forum qui disait :
*****************
Sur mon XP, %date% me donne 10/09/2003.  
donc je vois plutôt un truc dur genre  
set fic=sauvegarde_%date:~0,2%_%date:~3,2%_%date:~6,4%.txt  
Qui donne "sauvegarde_10_09_2003.txt"  
Mais pour avoir les fichiers dans l'ordre des dates, il vaux mieux faire  
set fic=sauvegarde_%date:~6,4%_%date:~3,2%_%date:~0,2%.txt  
Qui donne "sauvegarde_2003_09_10.txt"  
*****************
 
c'est cool mais ca marche pas !!!!  chez moi quand je tape :
set fic=sauvegarde_%date:~0,2%_%date:~3,2%_%date:~6,4%.txt
lorsque je tape la cde "set" j'ai
 
fic=sauvegarde_%date:~0,2%_%date:~3,2%_%date:~6,4%.txt
 
alors que je devrais avoir la date sys qui s'affiche ????  
 
qui sait d'ou ça viens ?
merci
 
 
 
 

Reply

Marsh Posté le 01-03-2004 à 10:40:32   

Reply

Marsh Posté le 01-03-2004 à 10:45:17    

ca ne marche que dans la meme fenetre de commande ...
 
si tu ferme ton cmd, la variable est effacé  
 
Generalement, ceci est utiliser dans des scripts bat et ca ne pose pas de probleme, mais si tu veux ajouter cette variable definitivement, il faut la declarer en variable globale ( dans les propriete system / variable d'environement / ajouter
 
ps: ca marche bien chez moi :
 

Code :
  1. K:\>set fic=sauvegarde_%date:~0,2%_%date:~3,2%_%date:~6,4%.txt
  2. K:\>set fic
  3. fic=sauvegarde_01_03_2004.txt
  4. K:\>set
  5. ALLUSERSPROFILE=C:\Documents and Settings\All Users
  6. APPDATA=C:\Documents and Settings\cedric\Application Data
  7. CommonProgramFiles=C:\Program Files\Fichiers communs
  8. COMPUTERNAME=STRUCAD0X
  9. ComSpec=C:\WINDOWS\system32\cmd.exe
  10. fic=sauvegarde_01_03_2004.txt


Message édité par bl@p_psx le 01-03-2004 à 10:45:33
Reply

Marsh Posté le 01-03-2004 à 11:29:59    

Y'a vraiment un prb chez moi ... quand je tape
 
C:\set fic=sauvegarde_%date:~0,2%_%date:~3,2%_%date:~6,4%.txt
 
puis
C:\>set fic
 
Voila mon resultat (je suis dans la meme fenetre)  
 
fic=sauvegarde_%date:~0,2%_%date:~3,2%_%date:~6,4%.txt  
 
???? je sais pas d'ou ca viens ?
 

Reply

Marsh Posté le 01-03-2004 à 11:33:12    

essaye set /P fic=sauvegarde_%date:~0,2%_%date:~3,2%_%date:~6,4%.txt  
 

Reply

Marsh Posté le 01-03-2004 à 11:38:11    

ca change rien !!!
je suis sous NT4 si ca peut t'aider..

Reply

Marsh Posté le 01-03-2004 à 11:38:55    

ha ! bein c'est normal alors ...
 
je vais regarder sur un nt4 comment contourner ce probleme ( j'y ai dejà ete confronter )
 
la variable %DATE n'existe pas sous NT4 ...
 
il faut la creer a partir de DATE/T
 
esaye un truc dans le genre :
 
set date = DATE/T
set fic = sauvegarde_%date:~0,2%_%date:~3,2%_%date:~6,4%.txt
 
( il faut verifier la position des "balise" 0,2   3,2 et 6,4 )
 
et en passant, je suis pas sur que ca marche, il me smeble que sur NT4 la date est sous la forme lun. 01 2004


Message édité par bl@p_psx le 01-03-2004 à 11:41:44
Reply

Marsh Posté le 01-03-2004 à 11:41:13    

merci...

Reply

Marsh Posté le 01-03-2004 à 11:41:52    

ci dessus

Reply

Marsh Posté le 01-03-2004 à 11:47:24    

vla ce que ca donne
 
set date=DATE/T
set fic = sauvegarde_%date:~0,2%_%date:~3,2%_%date:~6,4%.txt
set fic
  resultat:fic=sauvegarde_DA_E_.txt
 
et set date donne date=DATE/T ...

Reply

Marsh Posté le 01-03-2004 à 11:59:39    

for /f "usebackq tokens=2,3,4 delims=/ " %%a in (`date /t`) do set fic =sauvegarde_%%a%%b%%c.txt  
 
essaye ca ... mais il manque les "_"
 
je vais chercher encore un peu


Message édité par bl@p_psx le 01-03-2004 à 12:00:17
Reply

Marsh Posté le 01-03-2004 à 11:59:39   

Reply

Marsh Posté le 01-03-2004 à 12:04:43    

message d'erreur...
"%%a était inattendu"
Q: est ce qu'il ne doit pas y avoir un service en particulier qui doit etre utilisé pour utiliser SET ?

Reply

Marsh Posté le 01-03-2004 à 12:06:37    

si je tape  
date /t =======> pas de prb : lun. 01/03/2004
 
mais des que je veux executer qq chose et le mettre dans une variable ca ne marche pas !!

Reply

Marsh Posté le 01-03-2004 à 13:30:23    

frol a écrit :

message d'erreur...
"%%a était inattendu"
Q: est ce qu'il ne doit pas y avoir un service en particulier qui doit etre utilisé pour utiliser SET ?


 
il faut mettre ca dans un fichier bat  
 
si tu veux le lancer en ligne de comande, il faut faire :  

Code :
  1. for /f "usebackq tokens=2,3,4 delims=/ " %a in (`date /t`) do set fic =sauvegarde_%a%b%c.txt


 ( enlever les "%%" et les remplace par "%" )


Message édité par bl@p_psx le 01-03-2004 à 13:30:54
Reply

Marsh Posté le 01-03-2004 à 15:02:30    

y'a rien qui marche!
Q: faut modifier la base de registre ? si oui quoi faire ?

Reply

Marsh Posté le 01-03-2004 à 15:24:26    

mais si ca marche ...
 
creer un fichier bat contenant :  
 

Code :
  1. @echo off
  2. for /f "usebackq tokens=2,3,4 delims=/ " %%a in (`date /t`) do set fic =sauvegarde_%%a%%b%%c.txt 
  3. echo il fait beau >c:\%fic%


 
ca va te creer un fichier a la racine de C avec :
 
nom : sauvegarde_01032004
contenu : il fait beau


Message édité par bl@p_psx le 01-03-2004 à 15:25:10
Reply

Marsh Posté le 01-03-2004 à 15:51:44    

tjs pas! j'ai crée le fichier .bat contenant exactement le code que tu m'as donné...vla le message d'erreur :
 
***
usebackq tokens=2,3,4 delims=/ " était inattendu.
le chemin spécifié est introuvable.
***

Reply

Marsh Posté le 01-03-2004 à 16:58:39    

Et ca : ?
 

Code :
  1. @echo off
  2.   for /f "tokens=2,3,4 delims=/ " %%a in (`date /t`) do set fic =sauvegarde_%%a%%b%%c.txt 
  3.   echo il fait beau >c:\%fic%


Message édité par bl@p_psx le 01-03-2004 à 16:58:57
Reply

Marsh Posté le 02-03-2004 à 10:00:29    

cool, ca marche par contre dès qu'il y a un espace à:
fic =sauvegarde_%%a%%b%%c.txt    
ca merde !!!!donc avec  
fic=sauvegarde_%%a%%b%%c.txt  
et des '' droite (pas des (`...`) ca marche...
 
En cherchant un peu plus j'ai trouvé ça: ça marche aussi:
@ECHO OFF
 
ECHO.
for /f "tokens=2-4 delims=/ " %%a in ('DATE /T') do set Date=%%c-%%b-%%a
echo %date% >c:\set\%date%.txt
 
En tout cas merci pour ton aide...
 

Reply

Marsh Posté le 02-03-2004 à 10:26:07    

de rien

Reply

Marsh Posté le 11-10-2005 à 09:34:42    

Salut,
 
alors je vois qu'il y a des pros du SET ici.
ca tombe bien! voilà mon probleme.
 
j'ai une commande:
nslookup nom_machine | find "Address" | more +1
 
qui me retourne sans probleme:
Address: XX.XX.XX.XX (enfin l'adresse ip en question quoi :) )
 
alors mes questions:
 
1) quelle commande utiliser pour ne garder que l'adresse ip dans ce resultat
 
2) (je galere depuis hier la dessus) je voudrais mettre le resultat de cette commande dans une variable mais si je tape set NOM_VARIABLE=nslookup nom_machine | find "Address" | more +1   ca ne marche pas !!! la variable n'est pas créée
 
qn a une idée?.
 
merci d'avance


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed