Besoin d'aide sur un fichier batch paramétré !
Dernière réponse : dans Programmation
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.
Et voici mon batch à l'heure actuelle :
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
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.
Et voici mon batch à l'heure actuelle :
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
Autres pages sur : besoin aide fichier batch parametre
Lassé par la pub ? Créez un compte
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.
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 !
Sinon ton code est pas top : choice ne marche pas si tu es sous windows NT !
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 !!!
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 !!!
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 !!!
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 !!!
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumFichier batch copy fichier
- ForumAfficher contenu fichier batch
- ForumFichier batch commandes
- solutionsFichier batch
- ForumProbleme de retour avec un fichier batch
- ForumFichier batch copie de fichiers
- ForumFichier batch copy de fichier
- ForumBatch copie de fichier
- ForumBesoin du fichier wininit.exe
- ForumBatch suppression date fichier
- Voir plus