langage de commande sous nt

langage de commande sous nt - Programmation

Marsh Posté le 17-01-2002 à 13:21:34    

bonjour,
 
je dois mettre en place des fichiers de commande sous windows nt mais je connais que dale à la programmation
 
premièrement avec la commande "at" je dois copier le contenu d'un répertoire "prive\travail" du serveur "bond" vers le répertoire "utilisateur\michael du serveur "no". la copie sera effectuée tous les 29 du mois à minuit 15
j'ai donc fait ça:
at \\bond 00:15 /every:29 "cmd copy prive\secret \\no\utilisateur\michael"
le pb vient de la syntaxe après cmd et j'ai essayé plein de chose mais ça marche pas
 
j'ai encore trois autres pbs avec des fichiers de commande intégrant les variables d'environnement mais là j'ai rien compris depuis le début
 
1- il faut que j'écrive un fichier de commande qui admette en paramètre une liste de chemin d'accès séparés par le caractère ";". Ce fichier de commande ajoute cette liste à la variable d'environnement PATH qui contient les répertoires où l'on cherche les programmes à exécuter. Et après la mise à jour de la variable PATH, sa nouvelle valeur est affichée.
 
2- Je dois aussi écrire un fichier de commande qui copie un fichier, dont le nom est passé en paramètre, dans le répertoire de travail de l'utilisateur courant. Je sais juste que sous Windows nt le nom de l'unité de disque où se trouve le répertoire de base est mémorisé dans la variable d'environnement HOMEDRIVE et le chemin du répertoire dans la variable HOMEPATH.
 
3- enfin je dois écrire un fichier de commande qui exécute le programme "intel.exe" si le processeur utilisé est de type intel ou le fichier de commnade "autres.cmd" s'il ne s'agit pas d'un processeur intel (ces 2 programmes se trouvent dans le répertoire system). je dois utiliser la variable d'environnement PROCESSOR_ARCHITECTURE qui contient la valeur "x86" si le processeur est de type intel et la variable SYSTEMROOT qui contient le chemin d'accès au répertoire système de windows.
 
merci d'avance à tous ceux qui pourrant m'apporter un peu d'aide

Reply

Marsh Posté le 17-01-2002 à 13:21:34   

Reply

Marsh Posté le 21-01-2002 à 10:41:34    

[:belgarion_cer]

Reply

Marsh Posté le 21-01-2002 à 11:25:35    

at \\bond 12:15 /every:29 "xcopy c:\prive\secret \\no\utilisateur\michael"
 
le pb doit venir de l'heure dans at minuit 5 = 12:05
midi 5 : 12:05pm
 
PS : j'aime bien ton pseudo TuffGong, viens voir mon site ! =)

 

[edtdd]--Message édité par kayasax--[/edtdd]


---------------
All we need is a soul revolution
Reply

Marsh Posté le 21-01-2002 à 11:48:08    

Copie la ligne suivante dans un .bat exemple copie.bat
xcopy %1 %homedrive%%homepath%
tu peux rajouter un test pour verfier qu'il n'y a bien qu'un seul parametre de passé au programme
 
et tu appelles le programme par :
copie.bat "c:\test\nom_du_fichier"
 
ca ca devrait tourner pour ton point n°2

 

[edtdd]--Message édité par kayasax--[/edtdd]


---------------
All we need is a soul revolution
Reply

Marsh Posté le 21-01-2002 à 13:31:27    

j'ai essayé ta solution pour le point 2 kayasax mais ça marche pas j'ai le message nombre de paramètres non valide
j'ai donc rajouter % après le 1 ce qui donne xcopy %1% %homedrive%%homepath% et là j'ai le message suivant: fichier introuvable - nom_du_fichierhomedrive%homepath alors que le fichier existe bien et qu'il n'y a pas d'ereur dans son chemin d'accès
que faire?

Reply

Marsh Posté le 21-01-2002 à 13:51:38    

pourtant g fait le test sur mon poste ca marche.
T'es sur que tu fais tourner ta commande sur un poste NT ?
sinon en batch le 1er argument est %1 et pas %1%
Tiens moi au courant ou copie le contenu de ton batch  sur le forum

Reply

Marsh Posté le 21-01-2002 à 19:51:28    

effectivement j'ai commencé par essayer sur windows 2000 et ça passait pas
sous nt par contre ça marche
merci encore
il me reste plus que les problèmes petit 1 et 3!
 
PS: je reviens de ton site ftp qui est très intéressant!

Reply

Marsh Posté le 21-01-2002 à 19:53:55    

Là tu m'etonnes encore + paske ce matin j'ai fait le test sur un win 2000...
Si j'ai le temps j'essairais de te filer des tuyaux pour le 1 et  le 3 ce qui me bloque pour le moment c'est la separation des parametres par ";" alors qu'un espace suffit...
 

tuffgong a écrit a écrit :

effectivement j'ai commencé par essayer sur windows 2000 et ça passait pas
sous nt par contre ça marche
merci encore
il me reste plus que les problèmes petit 1 et 3!
 
PS: je reviens de ton site ftp qui est très intéressant!  




---------------
All we need is a soul revolution
Reply

Marsh Posté le 21-01-2002 à 21:38:41    

sous windows 2000 j'ai fais exactement ça:
création de copy.bat dans c:\ avec le bloc notes en mettant cette ligne: xcopy %1 %homedrive%%homepath%  
ensuite via l'invite de commande je me suis rendu à la racine du disque et je lui est demandé de copier le fichier photo.zip qui se trouvait dans le répertoire c:\utilisateur via cette commande:
copy.bat "c:\utilisateur\photo.zip"  
la ligne suivante s'affiche: xcopy "c:\utilisateur\photo.zip" C:\Documents and Settings\administrateur
suivie de "nombre de paramètres non valide"

Reply

Marsh Posté le 21-01-2002 à 21:40:35    

Quand tu utilises des noms longs (avec espaces) il faut les mettre entre guillemets ".

Reply

Marsh Posté le 21-01-2002 à 21:40:35   

Reply

Marsh Posté le 21-01-2002 à 21:47:27    

yeah

Guru a écrit a écrit :

Quand tu utilises des noms longs (avec espaces) il faut les mettre entre guillemets ".  




---------------
All we need is a soul revolution
Reply

Marsh Posté le 21-01-2002 à 22:00:59    

kayasax a écrit a écrit :

yeah
 




 
je comprends pas. j'ai bien mis des guillemets pour lancer la commande:
copy.bat "c:\utilisateur\photo.zip"

Reply

Marsh Posté le 21-01-2002 à 22:03:19    

c'est pas le fichier source ki pose pb mais la destination essayes avec ca :
xcopy %1 "%homedrive%%homepath%"
 
ou change ton homepath (mets un chemin + court)
 

tuffgong a écrit a écrit :

 
 
je comprends pas. j'ai bien mis des guillemets pour lancer la commande:
copy.bat "c:\utilisateur\photo.zip"  




---------------
All we need is a soul revolution
Reply

Marsh Posté le 21-01-2002 à 22:08:46    

ça marche!!!!!!

Reply

Marsh Posté le 21-01-2002 à 22:11:01    

;)
et pour ton 2) faut obligatoirement des ; pour separer les parametres?
PS si tu as des sous repertoires dans ton dossier a sauvegarder il faut utiliser  
xcopy /e  
 

tuffgong a écrit a écrit :

ça marche!!!!!!  



 

[edtdd]--Message édité par kayasax--[/edtdd]

Reply

Marsh Posté le 21-01-2002 à 22:15:10    

si tu as une idée sans le ";" je suis aussi preneur  :)

Reply

Marsh Posté le 21-01-2002 à 22:18:35    

faut que tu cherches un peu aussi ;) ...
et pour at c bon ?

tuffgong a écrit a écrit :

si tu as une idée sans le ";" je suis aussi preneur  :)  



 

[edtdd]--Message édité par kayasax--[/edtdd]

Reply

Marsh Posté le 21-01-2002 à 22:28:27    

la commande at fonctionne
je tiens à te remercier pour ton aide car je n'ai aucune notion de programmation
 
je quitte le forum pour ce soir je vais aller faire "atelier roullage"

Reply

Marsh Posté le 21-01-2002 à 23:26:33    

Pour le ; a priori, y'a pas à se faire chier !
 
C'est pour modifier le PATH, donc le ; est juste ce qu'il faut !
 
SET PATH=%PATH%;%1
ECHO %PATH%


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 21-01-2002 à 23:31:41    

nan tu dois povoir passer plusieurs chemmins en parametres separes par des ;  

Mara's dad a écrit a écrit :

Pour le ; a priori, y'a pas à se faire chier !
 
C'est pour modifier le PATH, donc le ; est juste ce qu'il faut !
 
SET PATH=%PATH%;%1
ECHO %PATH%  



Reply

Marsh Posté le 21-01-2002 à 23:32:45    

Et alors ?
 
Un PATH, c'est justement plusieurs chemins séparés par des ;


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 21-01-2002 à 23:33:50    

si tu fais ca SET PATH=%PATH%;%1
tu vas ajouter que le 1er chemin passe en parametre...et les autres??

Reply

Marsh Posté le 21-01-2002 à 23:35:51    

Donc ils sont séparés par des ; ET par des espaces alors !
 
Alors :  
 
SET PATH=%PATH%;%1%2%3%4%5%6%7%8%9
ECHO %PATH%


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 21-01-2002 à 23:35:52    

ah non ok je viens de capter effectivement en fait tu passes qu'1 seul parametre ;)

Reply

Marsh Posté le 21-01-2002 à 23:37:06    

Si il n'y as pas d'espaces, c'est qu'il n'y as qu'UN SEUL paramètre.
 
----------------------------
 
OK, j'avais pas vu ta réponse  ;)

 

[edtdd]--Message édité par Mara's dad--[/edtdd]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 21-01-2002 à 23:38:52    

Sinon, il te reste quoi comme problèmes ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 22-01-2002 à 13:08:59    

finalement c'est quoi le programme à écrire concernant la variable d'environnement PATH
 
il restera plus que le dernier problème sachant que le programme intel.exe et le fichier de commande autres.cmd ne sont pas à écrire (ils existent déjà)

Reply

Marsh Posté le 22-01-2002 à 14:28:05    

Pour le PATH :  
 

Code :
  1. SET PATH=%PATH%;%1
  2. ECHO %PATH%


 
Ligne 1 : Modification du PATH
Ligne 2 : Affichage du PATH
 
Pour le processeur :  
 

Code :
  1. IF %PROCESSOR_ARCHITECTURE%==x86 (%SYSTEMROOT%\intel.exe) ELSE %SYSTEMROOT%\autres.cmd


 
A écrire sur une seule ligne.
 
Variante :
 

Code :
  1. IF %PROCESSOR_ARCHITECTURE%==x86 GOTO INTEL
  2. %SYSTEMROOT%\autres.cmd
  3. GOTO FIN
  4. :INTEL
  5. %SYSTEMROOT%\intel.exe
  6. :FIN

 

[edtdd]--Message édité par Mara's dad--[/edtdd]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 22-01-2002 à 21:07:00    

merci beaucoup!

Reply

Marsh Posté le 22-01-2002 à 21:22:18    

De rien, çà me rappelle le bon vieux temps  :sweat:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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