Creer batch apres la commande CMD ? - Win NT/2K/XP - Windows & Software
Marsh Posté le 07-03-2011 à 15:58:10
Salut,
un fichier texte renommé en .bat
avec tes deux lignes.
Et tu lance le bat par un double clic depuis le bureau.
A+
Marsh Posté le 07-03-2011 à 16:26:25
C'est ce que j'ai fait.
Le bat ouvre bien CMD mais ensuite ne va pas plus loin
Fort possible que ça ne fonctionne pas a l'interieur de la console.
Tout sur le batch c'est dans le gros bouquin de 1000 pages que j'ai sous le nez.
Avec toutes les commandes DOS et la fabrication des batch. .
On peut decider de faire un pause entre les commandes, de poser des questions oui ou non, d'afficher les commandes ou pas etc....
Mais 95 et 98 avaient le Dos et pas XP. La console n'est pas le Dos.
Bref ! Les commandes ne veulent plus s'executer une fois la console ouverte.
Une astuce ?
Marsh Posté le 07-03-2011 à 16:29:04
Salut,
quand tu ouvre cmd et que tu tape a la main les commandes ça marche ?
A+
Marsh Posté le 07-03-2011 à 16:53:42
La place des signes pourcent et guillemets est-telle correcte ?
Il me semble bizarre de mettre le pourcent avant le guillemet du début, puis avant le guillemet de fin.
Marsh Posté le 07-03-2011 à 17:04:49
pourquoi tu lance CMD au debut ?
avec ca, tu lance un nouveau "shell" et tant que ce dernier est pas fermé ton script ne continuera pas
Marsh Posté le 07-03-2011 à 17:48:07
Merci de votre attention.
Je ne suis pas completement nul en DOS. Et en Amiga Dos j'ecrivais moi meme mes commandes de set up. Mais c'etait au siecle dernier.
Ca fait des annéees que je nettoie mes TMP TEMP comme ça.
Parce que si tu veux effacer tous les TEMP dans le fichier lui meme ( CTRL A puis supprimer) il va se bloquer a chaque fois qu'il va rencontrer un fichier "protégé".
Sous Dos ça oublie les fichiers non supprimables
J'ai déplacé ces fichiers variables d'environnement a un autre emplacement dans une autre partition. Les commandes les trouvent sans probleme.
Les commandes citees ne fonctionnent pas dans Executer.
Je dois d'abord imperativement ouvrir CMD et ensuite taper ces commandes dedans.
Je cherchais un moyen de faire tout le boulot en un click
Normalement dans un batch tu alignes les commandes qui s'executent dans l'ordre. Mais la premiere commande se situe dans l'environnement XP mais la seconde devrait continuer dans l'environnement console. Ca n'est pas du tout pareil.La console est un autre systeme.
Il y a peut etre une astuce ?
A +
Marsh Posté le 07-03-2011 à 18:21:09
Bon, je comprend pas du tout ce que tu veux
Le principe de tout batch, est ce creer un fichier .bat comme dit plus haut, coller ta/tes fonction dedant et tu lance le batch depuis ou et quand tu veux.
Marsh Posté le 07-03-2011 à 19:13:08
Pas facile de m'expliquer je vois.
Je tente encore une fois.
Je suis oblige, lorsque je tape ces commandes a la main, de le faire dans la console CMD. Directement dans XP çà ne marche pas
Il n'y a pas que ça qui necessite la console
Par exemple dans Executer je tape ipconfig /all
Ca ne marche pas
Si j'ouvre CMD et que je tape dedans ça fonctionne.
Il existe un grand nombre de commandes ne fonctionnant pas dans Executer. Si toutes fonctionnaient on n'aurait jamais besoin de Console. la Console est un reste de Dos.
Donc ma première ligne de batch c'est CMD. Elle est ecrite en Dos.
Elle ouvre bien la console.
La seconde ligne de batch en Dos del xxxxx ne s'execute pas dans la console.
Hors elle devrait puisque c'est du Dos.
La transition entre les systemes ne se fait pas.
Imagine que je fasse un fichier bat avec une ligne devant s'executer sous XP et l'autre sous Linux ou bien sous Seven ?
Ca ne va pas marcher non plus. .
XP est un O.S et la console c'est un autre O.S. le Dos. Different.
Je cherche une astuce...
Marsh Posté le 07-03-2011 à 19:21:52
Salut,
OK
dans executer tu tapes cmd
dans la fenetre cmd, tu tapes tes commandes
Sont elles executées sans erreurs ?
Par defaut le fichier .bat sous xp est executé par la console cmd.
A+
Marsh Posté le 07-03-2011 à 19:31:53
C'est bien ce que je fais.
Ce petit probleme n'a pas d'importance en fait mais j'utilise ces commandes depuis au moins 5 ans. Disons curiosité...
Je viens de faire un autre essai dans CMD
J'ouvre CMD.
Je tape ma commande del /s /q "%temp%" dedans. Ca marche
Je cree un fichier bat avec cette seule commande dedans.
Une fois dans CMD j'execute le bat. Eh bien ça ne marche pas.
On ne peut donc pas executer un bat a l'interieur de la console. Bien sur. Cette commande extension bat n'est pas reconnue par la console.
Si tu tapes HELP dans la console tu vas voir s'afficher une liste des commanbdes acceptees. Il n'y a pas de bat dedans. CQFD.
On ne peut pas faire de cette façon.
Merci pour ces interventions.
Marsh Posté le 07-03-2011 à 19:34:57
Salut,
a la fin du fichier bat insere un pause pour garder la fenetre cmd ouverte et lire les messages d'erreur.
A+
Marsh Posté le 07-03-2011 à 19:36:25
PS
Apres ce queje viens de faire ( plus haut) une oause est inutile. ca ne peut pas fonctionner comme ça.
Marsh Posté le 07-03-2011 à 19:38:13
Salut,
le .bat tu le lance comment ?
essai sans les guillements juste %temp%
A+
Marsh Posté le 07-03-2011 à 20:00:13
franck31195 a écrit : Salut, |
ca fera que 3 fois qu'on te dis de créer un bat.
pour le lancer, tu double click dessus.
pour t en convaincre, rajoute "pause" a la fin du fichier, tu vera qu'il aura bien lancé une commande MS Dos
Marsh Posté le 07-03-2011 à 20:27:38
Desole mais je fais tout ça depuis le debut.
Je sais comment creer un batch avec le bloc note et mettre l'extension bat au bout.
Ce que je n'arrive pas a expliquer c'est que mon fichier bat ne fonctionne pas a l'interieur de la console cmd. Forcement.
Et il me faut operer dans la console car on ne peut pas faire executer une commande Dos directement sous XP dans Executer.
L'extension .bat n'est pas reconnue par la console. Elle n'est pas dans la liste des commandes pas plus internes qu'externes.
Le dos ne reconnait pas la commande .bat
C'est XP qui la reconnait et qui exécute le contenu.
A l'interieur de la console on n'est pas dans XP et donc pas de reconnaissance du .bat
Ouf ?
http://support.microsoft.com/kb/451013/fr
Tout ça pour eviter de taper 12 caractères dans la console.........un fois par mois.....
Feignasse d'accord mais quand meme curieux.
Comme je disais ça n'est pas grave.
Bonne soiree et encore merci de votre attention..
Marsh Posté le 07-03-2011 à 20:57:00
Salut,
D'une la console cmd n'est pas dos sous 2000 et suivant.
De deux pourrais tu répondre aux questions que l'on te pose.
Je veux bien prendre du temps pour répondre aux questions mais si la personne en face ne veux pas faire l'effort d'y mettre du sien je vais passer mon chemin.
Une dernière fois, comment lance tu ton .bat ?
A+
Marsh Posté le 07-03-2011 à 21:36:18
En cliquant dessus evidemment.
Je vois le batch qui s'execute sous forme de flash.
Je te suggere un truc tres simple a faire pour ça
Tu ouvres cmd. Dedans tu tapes help et tu vas voir s'afficher toutes les commandes.
Tu crees un fichier batch help.bat
Dedans tu ecris la commande Dos help.
Tu ouvres CMD
( a noter que tu peux l'ouvrir de 2 façons. Soit en tapant cmd dans executer, soit en creant un fichier batch cmd.bat Dans ce fichier tu ecris tout simplement cmd).
Et ça va marcher.
Tu te trouves donc dans la console.
Cette fois au lieu d'ecrire helpau clavier tu cliques sur ton fichier hep.bat
Eh bien il se se passera rien.
Essaie, tu verras. Tu en as pour 20 secondes pour tout faire.
C'est a ça que je me heurte depuis le debut.( pas avec help mais c'est pareil)
Si j'ecris un fichier batch avec 2 lignes
cmd
help
La premiere va s'executer et m'ouvrir la console et la seconde ligne rien du tout.
Si je n'arrive pas a faire comprendre mon minuscule probleme precis alors la je serais oblige de capituler.
Si tu as une solution tu peux me montrer comment tu ecrirais un fichier batch qui taperait le commande HELP dans CMD ?
Tu aurais tout resolu.
Bonne nuit et quelle patience. Mais il y a quand meme de l'incompréhension mutuelle. Helas.
Marsh Posté le 07-03-2011 à 21:50:35
bigbernie a écrit : En cliquant dessus evidemment. |
Ca marche chez moi
Marsh Posté le 07-03-2011 à 22:17:21
Diable ! Sous XP sp 3 ?
Marsh Posté le 07-03-2011 à 22:17:30
Salut,
question dans les options des dossiers, onglet affichage
la case "masquer les extentions des fichers dont le type est connue" est bien décoché ?
Pour moi aussi ça fonctionne, si j'appelle depuis cmd un fichier .bat il lance les commandes dans la console.
A+
Marsh Posté le 07-03-2011 à 22:28:54
Suite...bien sur. Ca a toujours ete comme ça. On ne doit jamais masquer les extensions, pour des raisons de securite.
Je vais refaire des essais plus tard.
Ce truc en fait a eveille ma curiosite.
Pepere fait quand même de l'informatique depuis 26 ans sous 8 O.S differents. Zenith C 64 etc etc......sans oublier Linux....
Et si je n'ai pas l'honneur d'etre programmeur j'ai quand meme des notions parfois interessantes en Tos Tramiel, Amiga Dos, Dos Microsoft, assembleur 16/32 Motorola, Basic Gfa, C ++
J'avoue que cette histoire toute conne de .bat qui ne veut pas s'executer sous console ça m'intrigue.
Apres tout il m'est arrive pour aider les gens de tripatouiller Windows sous la Console de Restauration en lignes de commandes et sans probleme.
Je vais réfléchir a la question et je vous remercie tous d'avoir pris la peine de m'aider sur ce minuscule problème....sans aucune utilité pratique.
Bonne nuit et a +
Marsh Posté le 07-03-2011 à 22:35:24
Salut,
pas de soucis, je ne suis pas programmeur non plus.
Ton problème est effectivement bizzare.
A+
Edit :
J'ai refais ton batch avec cmd et help. Et chez moi non plus ça fonctionne pas.
J'ai bien une console CMD qui s'ouvre mais elle n'effectue pas la commande help.
Si je fais un batch avec help et pause là j'ai bien la console qui s'ouvre et la commande help qui s'affiche et la demande d'appuie sur une touche pour sortir.
Essai cela dans un fichier essai.bat
Code :
|
Marsh Posté le 07-03-2011 à 23:30:41
Tu aurais pas virer le .bat de ton PATHEXT ? (echo %PATHEXT%)
Virer l'association des bat ?
Si au lieu de mettre .bat tu met .cmd ça fait pareil ? (c'est censé être pareil )
Marsh Posté le 07-03-2011 à 23:45:14
Un petit coup d'oeil avant dodo..
Je n'ai pas touche le path. Pourquoi l'aurais je fait ?
J'ai bien BAT avec CM VBS VBE ec etc...dans mes variables systemes.
Les seules paths que j'ai modifie c'est tmp et temp.
J'essaie d'avoir un C le plus petit possible car je clone regulierement.
Je vais faire d'autres essais.....juste pour le fun...plus tard
Merci beaucoup pour toutes ses interventions ça a ete un plaisir.
Marsh Posté le 08-03-2011 à 09:24:51
bigbernie a écrit : Desole mais je fais tout ça depuis le debut. Je sais comment creer un batch avec le bloc note et mettre l'extension bat au bout. |
Tu aurais pas simplement crée un fichier : test.bat.txt ?
dans la mesure ou les extensions de fichiers sont par défaut caché ?
Marsh Posté le 08-03-2011 à 11:20:14
Bonjour
Non. Et mes extensions ne sont pas cachées. Jamais.
Je viens de refaire un essai hors console en transfert de fichiers avec Xcopy .
Le bat fonctionne
Mais j'ai pense a quelque chose en suivant vos idees.
La ligne pause fonctionne bien a l'intérieur de cmd puisque j'ai la question continuer ou pas. Oui mais la ligne HELP qui suit ne s'execute pas.
J'ai teste dans le batch des lignes de commande necessitant un certain temps avant de pouvoir s'executer.
Du genre tracert ou ipconfig.
Et cette fois je vois en a peine un 10eme sinon 20eme de seconde qu'il se passerait quelque chose dans CMD. Qui se referme immédiatement.
Lorsque je demande quelque chose en réponse a une commande dans CMD, la console ne se referme pas immédiatement. Ca exige EXIT. Mais si la commande est dans le batch ça se referme en un clin d'oeil ???? A moins que ça ne s'execute pas du tout et que ça flashe vide tout simplement = erreur et CMD se referme ?
Merci encore
.
Marsh Posté le 08-03-2011 à 11:35:13
tu cree deux fichiers .bat, par exemple lanceur.bat et commandes.bat.
Dans lanceur.bat tu y met :
CMD /K commandes.bat
ou
CMD /C commandes.bat
Le /K gardera la fenetre ouverte apres l'execution et le /C la fermera
Dans commandes.bat, tu y met les commandes que tu voulais.
Marsh Posté le 08-03-2011 à 12:21:06
Merci.....j'ignorais tout du /K
Si tu avais un lien qui listerait TOUS les /parametres applicables aux commandes DOS ça permettrait d'en faire un petit ficher d'aide perso.
En fait pour trouver tous ces parametres il faut pour chaque commande demander dans CMD quels sont les parametres. Commande par commande. Taper 150 commandes une par une suivies de /? C'est trop de boulot.
En fait tu as été chercher ce K dans cmd /?
Y aurait il un lien qui les reprend tous ?
Je n'ai pas compris ce que je devais mettre comme script pour executer une commande et garder ouvert. Désolé.
Je n'ai pas besoin de lancer CMD. Il suffit de cliquer dans Executer.
Ensuite je dois creer un fichier IP.bat qui comprendra la ligne
ipconfig /all
Je rajoute quoi exactement et ou ( avant, apres cette ligne ) pour que CMD ne se referme pas ?
Merci d'etre aussi patient.
Marsh Posté le 08-03-2011 à 12:45:17
Je ne pourrai pas te dire ou j'avait trouve ce parametre, c'etait pour vider les fichiers temps d'une appli pourrave et plus maintenue de gestion commerciale en VFP qui ne sait que remplir des dossiers de dump de table dans tous les sens
Ca doit se trouver sans trop de difficulte. (ouais par exemple : http://ss64.com/nt/cmd.html, plutot bien foutu )
CMD /K "nom du fichier bat que tu veux lancer" |
Le second, que tu appeleras "nom du fichier bat que tu veux lancer" :
del /s /q %"temp%" |
Avec toujours la possibilite de mettre de "pause", "echo off",... Voir meme faire quelques boucles...
Avec l'exemple de l'ipconfig :
LancerIpconfig.bat :
CMD /k IpconfigTxt.bat |
IpconfigTxt.bat :
ipconfig /all > ipconfig.txt |
Sinon, jette un coup d'oeil a windows power shell, ca a l'air d'etre un peu plus puissant...
Marsh Posté le 08-03-2011 à 14:31:25
Je ne comprend toujours pas comment tu fabriques tes lignes de commande.
C'est triste hein ?
Tu donnes par exemple ceci
CMD /k IpconfigTxt.bat
Qu'est ce que vient faire le .bat au bout ?
Si je mets un script ipconfig le .bat n'est pas dans le script. C'est l'extension que j'ajoute au fichier, qui peut porter n'importe quel nom en fait, une fois cree
J'aurais ecrit ceci pour conseiller :
Tu fais un script
CMD /k IpconfigTxt
Tu sauves ton script sous le nom de IP.bat (ou bien tartempion.bat)
Le bat n'est pas un script mais l'extension du fichier executable crée
Et ensuite que fait le txt dedans ?
En fait j'ai tout essayé. Avec et sans txt. Avec .bat a la suite du script ou pas et rien ne marche.
Je reste vraiment très perplexe.
Si je suis dans CMD je tape ipconfig Point barre
Si j'ecris un script batch le script est ipconfig Rien d'autre
Et en debut de ligne, ce que tu m'as appris je mets CMD /k pour empecher la fermeture. Que viennent faire le txt et le bat dans la ligne de commande ?
J'ai tout essaye néanmoins et rien ne fonctionne.....
Que de remuage de cerveaux pour un petit truc insignifiant.
Ca fait des années par exemple que j'ecris des scripts pour le registre et ça fonctionne.
Sous Amiga j'ecrivais des scripts pour créer des installeurs ( bien entendu a partir de disquettes " débloquées "!!!!!si tu vois ce que je eux dire) et en mode texte ça va tres bien.
Il m'arrive de faire des erreurs dans des lignes en C++ ( je ne suis pas tres fort dedans !)
Mais dans le cas ici tous mes scripts DOS batch fonctionnent parfaitement ..a condition que ça ne soit pas dans CMD......Tres bizarre non ?.
Marsh Posté le 08-03-2011 à 15:02:41
bon, j'ai franchement du mal a comprendre ce que tu veux....
en gros, dans demarrer/executer, tu veux pouvoir simplement lancer une commande Del ?
Voila ce que j'ai a proposer :
Demarrer/Executer:
Citation : |
Marsh Posté le 08-03-2011 à 16:17:27
Bingo.
Cette fois ci c'est bon non seulement sour Executer mais en batch.
Ce qui prouve qu'une commande simple que tu tapes toi meme dans CMD ne va plus du tout etre la meme si tu veux l'executer en batch
Il fait mettre devant
cmd /K "echo o |
/K je sais ce que c'est et echo aussi..mais pas le reste.
Je ne sais pas ce que veux dire 0 et quant a la barre verticale je n'ai plus vu ça depuis l'Amiga. Dans un PC je ne sais pas a quoi ça sert. Je ne suis meme pas certain que le signe | un utilisateur de PC sur 1000 sache ce que c'est.
J'ai deja du utiliser ça en programmation mais je ne sais plus du tout ou. Sniff !
Et ça n'est pas une commande Dos non plus.
Merci beaucoup. Tout est bien noté.
Marsh Posté le 08-03-2011 à 16:26:35
Pis c'est bien mieux l'truc d'Z, qu'est cool
Marsh Posté le 09-03-2011 à 14:20:23
bigbernie a écrit : Bingo. |
le " | " comme sur Linux permet d'envoyer le résultat d'une commande a la suivante.
hors, quand tu fais : Del %temp%
tu est demandé de confirmer "êtes vous sur de vouloir effacer c:....temp* (o/n)"
donc "Echo o" envoi le caractère o a la sortie standard a le commande " Del .... "
en gros, ca simule l'appuie de la touche o
par contre, attention ca n'a pas du tout la même signification en programmation, dans ce cas la c’est souvent utilisé comme "OU" logique
Marsh Posté le 17-09-2014 à 14:06:44
Salut! http://forum-images.hardware.fr/ic [...] /hello.gif
(enregistre ceci en .bat)
@echo off
del /f /q %windir%\Temp\*.*
del /f /q "%userprofile%\local settings\temp\*.*"
Marsh Posté le 17-09-2014 à 15:10:10
je pense, enfin je peux me tromper, mais a mon avis ( ça n'engage que moi) que depuis le temps ....
Marsh Posté le 07-03-2011 à 15:50:54
Salut a tous.
XP
Je n'ai plus utilisé le Dos depuis W 95 et je cale sur un truc basique.
Je veux creer un batch contenant des lignes de commande pour vider mes dossiers TMP et TEMP en sautant les fichiers qui ne peuvent pas etre supprimes
Les lignes sont simples.
del /s /q %"temp%"
del /s /q %"tmp%"
Mais cette commande doit etre faite dans la console CMD et pas dans Executer
Si je commence ma ligne batch par CMD ça ouvre bien la console...mais ça n'execute pas la ligne suivant CMD
CMD
del /s /q %"temp%"
Ca ouvre la console mais ça stoppe. Le batch tel quel ne continue pas dans CMD. Ah bon !
Merci de votre attention.