Utiliser variable DOS

Résolu/Fermé
Murlox - 18 juil. 2009 à 14:58
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 19 juil. 2009 à 07:59
Bonjour,

Je souhaiterai réutiliser le chemin que j'ai défini

set currentpath=%cd%

Pour y copier ensuite un fichier

copy TOTO.txt [le chemin défini]


J'ai naïvement tenté

copy TOTO.txt %currentpath%

Qui ne fonctionne pas... merci par avance d'éclaire ma LENTErne

6 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
18 juil. 2009 à 15:02
hello
mettre des " à cause des espaces
copy TOTO.txt "%currentpath%"
0
décidemment, merci encore dubcek!
0
Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022 1 250
18 juil. 2009 à 15:14
Bonjour !

La syntaxe correcte serait déjà SET currentpath=cd, sinon cela voudrait dire que CD est déjà une variable.
%..% est la syntaxe de récupération de la valeur de la variable.
Si %cd% était effectivement la chaîne utilisée ( je ne suis pas sûr que ce soit autorisé .. ) il faudrait alors doubler les % dans %currentpath% pour préciser que % est un caractère littéral, et non un code de syntaxe.

Par ailleurs je me demande si COPY est effectivement capable d'écrire ( graver ) sur un CD ?

Essaye d'abord une destination vers le disque dur, pour tester la syntaxe ...

A+

Nyctaclope
0
Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022 1 250
18 juil. 2009 à 15:24
PS :
Je pense, à la réflexion, que ma réponse est erronée, car pour toi CD est déjà une variable ( tu as fait un SET CD= ...)
Mes excuses ...

A+

Nyctaclope
0
Murlox > Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022
18 juil. 2009 à 15:26
CD comme la syntaxe DOS hein, pas comme CD-ROM !
0
@Nyctalope

Ca marche niquel avec

set currentpath=%cd%
copy TOTO.txt "%currentpath%"

Et non je n'essaie pas de graver sur un CD? en fait je voulais que le batch s'éxecute depuis et sur ma clef USB et sur n'importe quel PC, donc contourner le changement de lettre de cette clef.

Merci à vous deux en tout cas ;-)
0
Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022 1 250
18 juil. 2009 à 15:26
Merci de l'info ..
Et bravo à Dubcek ! ..
A+
Nyctaclope
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
18 juil. 2009 à 15:35
il y a d'autres variables automatiquement définies:
help set
%CD% - se développe en la chaîne du répertoire en cours.
%DATE% - se développe en la date actuelle en utilisant le même
format que la commande DATE.
%TIME% - se développe en l'heure en cours en utilisant le même
format que la commande TIME.
%RANDOM% - se développe en un nombre aléatoire compris entre 0 et 32767.
%ERRORLEVEL% - se développe en la valeur en cours de ERRORLEVEL
%CMDEXTVERSION% - se développe en le numéro de version des
extensions du processeur de commande en cours.
%CMDCMDLINE% - se développe en la ligne de commande originale
qui a appelé le processeur de commande.
0
Nyctaclope Messages postés 5315 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 11 décembre 2022 1 250
18 juil. 2009 à 21:51
Re !
Eh bien merci de cette info ...
Et notamment je ne connaissais pas %CD% d'où mon erreur ...
J'en étais resté au "vieux" DOS, qui n'avait pas tout cela ...
Par contre je serais ravi que tu m'explique les "" car :
- Copy sait bien reconnaître deux arguments et plus séparés par un espace, sans nécessité de "" ..
- pour moi les guillemets obligeraient à reconnaître %xxxxx% comme une chaîne et non comme une variable ??

Merci d'avance !

A+

Nyctaclope
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
19 juil. 2009 à 07:59
le problème c'est les espaces dans les chemins ou noms de fichiers, il faut des " pour que la commande DOS ne traite cela que comme un seul argument
$ dir > z
$ echo %cd%
C:\Documents and Settings\Nom Prenom\Mes documents\src
$ copy z %cd%\zz
La syntaxe de la commande est incorrecte.
$ copy z "%cd%\zz"
1 fichier(s) copié(s).

ou bien utiliser les noms courts DOS sans espaces, plus besoins de ":
C:\DOCUME~1\NOM~1\MESDOC~1\src
0