Besoin d'aide sur un fichier batch paramétré !
Forum Programmation : Besoin d'aide sur un fichier batch paramétré !
Bonjour à tous,j'ai un batch à programmer mais ce dernier à du mal a marcher.J'apprécierai qu'on puisse m'aider pour corriger les erreurs de mon batch.Je suppose qu'elles sont nombreuses mais ça m'a l'air pourtant correct.Merci d'avance
Voici l'énoncé :
1/ Afficher les paramètres X1,X2,X3,X4,X5,X6 et les valider sinon aller à la fin du batch
2/ Tester l'existence du répertoire X1 et s'il existe afficher son contenu, le supprimer entièrement après validation
3/ Créer l'arborescence suivante dans la racine du disque c:
X1 X5
x6
4/ Afficher tous les fichiers *.X2 de WINNT\SYSTEM32
5/ Demander où on veut les copier (X5,X6,nulle part) et si oui les copier dans le dossier choisi.
6/ Afficher tous les fichiers *.X3 de WINNT\SYSTEM32
7/ Demander où on veut les copier (X5,X6,nulle part) et si oui les copier dans le dossier choisi.
8/ Copier votre fichier dans X1 sous "votrenom.bat"
9/ Afficher les attributs du fichier, demander quel attribut on veut changer, changer l'attribut
10/Recommencer le point 9 tant que l'utilisateur le demande
11/ Afficher l'arborescence de X1 page par page avec les fichiers
12/ Demander si on veut recommencer le batch, si oui recommencer au point 1,sinon afficher votre fichier batch et arrêter le traitement.
[u]Et voici mon batch à l'heure actuelle[/u] :
ECHO OFF
CLS
ECHO Bienvenue dans mon TP
ECHO 1er parametre
ECHO %1
ECHO 2nd parametre
ECHO %2
ECHO 3eme parametre
ECHO %3
ECHO 4eme parametre
ECHO %4
ECHO 5eme parametre
ECHO %5
ECHO 6eme parametre
ECHO %6
CHOICE Vos paramètres sont-ils ceux que vous voulez?
If errorlevel 2 goto fin
IF EXIST %1 GOTO 1
IF NOT EXIST %1 GOTO FIN
PAUSE
MD %1/%5
MD %1/%6
PAUSE
DIR c
Windows/system32/*.%2
PAUSE
CHOICE /C:CUI Si vous voulez les copier dans %5 tapez C, si vous voulez les copier dans %6 tapez U et si vous ne voulez rien copier tapez I
If errorlevel 3 goto fin
IF errorlevel 2 copy C:\windows\system32\*.%2 %1\%5
If errorlevel 1 copy c:\windows\system32\*.%2 %1\%6
PAUSE
DIR c
windows/system32/*.%3
CHOICE /C:ROC Si vous voulez les copier dans %5 tapez R,si vous voulez les copier dans %6 tapez O et si vous ne voulez rien copier tapez C
If errorlevel 3 goto fin
IF errorlevel 2 copy C:\windows\system32\*.%2 %1\%5
If errorlevel 1 copy c:\windows\system32\*.%2 %1\%6
PAUSE
COPY TPBatch.Bat c:\%1\toto.bat
PAUSE
GOTO 10
:10
ATTRIB c:\%1\Dubien.bat
CHOICE /C:RASH Si vous voulez changer l'attribut lecture seule,tapez R,si vous voulez changer l'attribut archive,tapez A,si vous voulez
changer l'attribut Système tapez S et si vous voulez changer l'attribut Caché,tapez H.Sinon tapez Q.
If errorlevel 5 goto fin
IF errorlevel 4 attrib +R c:\%1\toto.bat
If errorlevel 3 attrib +A c:\%1\toto.bat
If errorlevel 2 attrib +S c:\%1\toto.bat
If errorlevel 1 attrib +H c:\%1\toto.bat
TREE/F/P %1
PAUSE
Voulez-vous recommencer ce batch?
If errorlevel 2 goto %0
If errorlevel 1 dir %1\TPBatch.bat
GOTO FIN
:1
DIR %1
RD/S %1
PAUSE
:FIN
ECHO Au revoir !
PAUSE
Peux-tu préciser un peu plus ton problème ?
ps: choice ne fonctionne pas sur tous les windows
Mon problème est simple : il ne fonctionne pas !
J'aimerais que qqun puisse m'aider à le corriger !
ya pas de debugger de .batch ??????
non pas de debugger
Pour savoir d'où vient le problème ajoute des ECHO pour voir d'où vient ton problème.
Je n'aime pas quand en programmation, on me sort du "ça marche pas". Précise d'où vient ton problème, parce que je ne testerai pas le code. Si tu dis où est le problème, normalement, je (ou quelqu'un d'autre) t'indiquera la résolution sans problème.
Avec Powerbatch tu peux éxécuter pas à pas ton batch ça peut etre pratique : http://www.astase.com/produits/powerbatch/
Sinon ton code est pas top : choice ne marche pas si tu es sous windows NT !
C'est vrai que faire un tel programme n'est pas très compliqué en fait.
Merci pour le lien maxcailla, je testerai ça
Mon problème vient dès le départ en fait,je ne cherche pas à faire du "ca marche pas" pour me dédouaner du boulot et faire les autres le travail à ma place,la preuve je l'ai fait,mais j'ai beaucoup de mal avec les paramètres.Normalement si j'affiche les paramètres,il me semble que je dois les entrer.Or, quand je lance le batch bah je rentre rien.
Tu lances ton batch depuis l'explorateur j'imagine !? Lances-le à partir de l'invite de commandes :
batch.bat 1 2 3 4 5 6 => lances ton batch avec les paramètres %1 à %6 qui valent respectivement les valeurs 1,2,3,4,5 et 6 !!!
Une autre petite chose que j'ai remarqué : remplaces C:\Windows par %systemroot% ça rendra plus "portable" ton batch ! Genre moi j'ai pas C:\Windows mais C:\WinNT donc ca ne passe pas tandis qu'avec %systemroot% c''est bon !!!
Je le lance de l'invite de commandes, a partir d'un dossier dans "mes documents".
batch.bat 1 2 3 4 5 6 => lances ton batch avec les paramètres %1 à %6 qui valent respectivement les valeurs 1,2,3,4,5 et 6 !!! Je fais quoi dans le batch? 1er parametre 1%1?ainsi de suite?Je te suis mal :-p
Ben je sais pas tu mets les paramètres que tu veux !!! j'ai dis 1...6 pour faire un exemple
Si tu mets 1,2,3...6 tes paramètres vaudront 1,2,3...6 !!!
Si tu mets toto,tata,titi... tes paramètres vaudront toto,tata,titi...
Je sais pas si tu l'as fait mais va voir le lien que j'ai mis plus haut pour deux raisons : il te permet de lancer ton batch avec des paramètres et aussi de l'éxecuter en pas à pas tu verras donc quelles lignes merdent !!!
Lance par exemple ceci:
Code :
|
Comme ça dans ton code:
%0 = batch.bat
%1 = c:\temp\test0
%2 = exe
%3 = dll
%4 = Vide
%5 = c:\temp\test1
%6 = c:\temps\test2
Il y a 370 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
