Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Bêta ON] L'Invite de commandes Windows et le Batch

Dans la catégorie "MS-DOS" par Aethec, Craki, Tufanik et Zaibai

Anonyme
31 août 2012 à 13:53:56

Ce n'est pas pour empiéter sur le terrain de celui qui écrit la partie sur %errorlevel% et CHOICE, mais j'ai précisé que cela ne fonctionnait pas avec Windows XP.
  • Partager sur Facebook
  • Partager sur Twitter
31 août 2012 à 15:04:38

Je ne suis pas sûr de comprendre.
CHOICE n'est pas intégré sur Windows xp, mais la commande externe fonctionne.
L'utilisation de %errorlevel% fonctionne bien, que ce soit dans la console ou dans les scripts.

Ai-je mal compris ce que tu voulais dire ?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 août 2012 à 19:03:18

CHOICE n'est pas sous Windows XP.
As-tu donc un lien ?
  • Partager sur Facebook
  • Partager sur Twitter
31 août 2012 à 19:20:51

Citation : Jio15

CHOICE n'est pas sous Windows XP.


Citation : Zaibai

CHOICE n'est pas intégré sur Windows xp, mais la commande externe fonctionne.



Les liens:
http://hp.vector.co.jp/authors/VA00721 [...] p/choice.html
http://www.sidoine.net/civ/civ2edi/9

Ou encore: https://www.google.com/search?q=choice.exe.

Pour les %errorlevel%, tu parle que ça ne fonctionne pas par rapport à choice ? Car si c'est ce que tu disais, ça je ne sais pas.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 août 2012 à 20:09:04

Bien sûr que si, errorlevel marche sous Windows XP. Je parlais de CHOICE.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
4 septembre 2012 à 17:34:34

Citation : germino

merci pour le lien, mais je parlais surtout de la couleur des commandes classiques telles que dir...



Tu fais cette technique, sauf que...

for /f %%a in ('dir') do %color% 0C 0 "%%a"
  • Partager sur Facebook
  • Partager sur Twitter
4 septembre 2012 à 19:16:05

Peut-on par exemple colorer les fichiers d'une couleur, les dossiers d'une autre ?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
4 septembre 2012 à 19:28:25

Citation : germino

Peut-on par exemple colorer les fichiers d'une couleur, les dossiers d'une autre ?



C'est plus chaud !

Je vais essayer de te concocter ça.

for /f "tokens=1,* delims=<" %%a in ('dir') do (
	if "%%b" neq "" (
		%color% 0C 1 "%%a<%%b"
	) else (
		%color% 02 1 "%%a"
	)
)


Ou, de manière plus poussée :
@echo off
setlocal enabledelayedexpansion
call :TXTCOLOR
set COLOR=TXTCOLOR.exe

for /f "tokens=1,* delims=<" %%a in ('dir') do (
	set d=%%a
	set d=!d:~0,1!
	if "!d!"==" " (
		%color% 07 1 "%%a"
	) else (
		if "%%b" neq "" (
			%color% 0C 1 "%%a<%%b"
		) else (
			%color% 02 1 "%%a"
		)
	)
)
pause
exit

:TXTCOLOR
Echo.Const W=^2>t.vbs&Echo.Set o=WScript.StdOut>>t.vbs
For %%b In (
"4D53434600000000BA030000000000002C000000000000000301010001000000000000"
"004900000001000100D20700000000000000009E3B8A662000747874636F6C6F722E65"
"78650063EB078D6903D207434BDD544B681341189E6D538D35352AE2030F4EC44A458D"
"55113C88D4C75A85AA5B5A2F8AD66D324997A6BB7177A2297868498B9450ECA182871E"
"7AF0E0C183878AA98844DA83828288074FE24549B1A00785452AEB3F8F3C5A7C54BD39"
"F0E77F7FF3CD9FD9397976045523847C209E87500E89D5847EBFFA40566C7AB0024D2C"
"7B1ECA292DCF43ED5D868393B615B7F51E1CD14DD3A2B893603B6562C3C4474FB7E11E"
"2B4AC27575B55B2486A622D4A254CDC37D8B82D5CB9525F3624DABE167250896EC985D"
"25782354D6A851C4A70F237E2E5EB8B25297145F1701EFC022CEFAA76B0C70F7FF221F"
"A6244D8B644036540BDE950B202E86A33AD5C17EA188C04BA6E78F864D23FFB73CCF0C"
"BDEB9F6D006324ABFA33AE2F38180016593590C9FBB2FED6C228789969DF903AC7637E"
"16EB2BC6DCAC3A9771157E6782A3F9C17C7060032A77071F295AE19C289EB9C413505E"
"5559DEB4B07C872867B97D15B9CC6385A7EBCAE9B5909EA945F2CACE0498C586F3A146"
"04D80FA7EDFE8CA25FEE995704C53298E865C7630D5F7983CBCC8F254E93EC8F6B9D64"
"95AD6C28190E12280D6AB2767E3E52CC33D47ED7637CAE8D0BE48C8B8203AB8AB6121C"
"A86124328CCE17CFF3B44258617C3E0FAB6FB4ACFA592B6C55F830FBDFB24F5684362A"
"9259207BD21D525F0F3E9530FC544B71139A616EAE062CE8789D455A0E31BBC04E0BCC"
"82F7D5F702EA45690EEB99E5E75553BCCAC747CCE7F374AA747FD6B0FB9313439BCDB1"
"0F0FB091025D3778979F776985EB0263589DD578B5360CDB0DAB2EC89C56E8E5D9358C"
"02CC010462E7BF791E9FDAA7ACFA492B5C1000B0B5573F86D9E5F1EAC7A5BE25F56DA9"
"A7A57E22F533A9EF487D57EA09A973523FC48B79FBFE9755EFD43B08AE084DD38895B0"
"EC304913DCA947BAE3B69532A30D8D3B8F6D8B5936A970E181374C7A8A5C69314CD2D0"
"B86BF736BC997611CC5EB4CDB50BF05FE1B21D08897771AE22761562D3F8C7DCD6410E"
"836C07D9077210A419A41D8480A442A26E08F44D907BA17FEBEB712E476C1A8E2612E0"
"38D44E10130CC349478DB841B959B4204B2D56C6671103A3236299D4B612B124733A1C"
"423BF464B283F626090FC409EDD10D53B7E30EF8240D30DDC4364962EF1EB96333A16D"
"347A5C37A30922DC2396E95809D216B109310FA76231629F30631624DB4AC97698FA21"
) Do >>t.vbs (
Echo.For b=1To 69Step 2:o.Write Chr(Clng("&H"^&Mid(%%b,b,W^)^)^):Next)
For %%b In ("4A6DA33345591BFA0E"
) Do >>t.vbs (
Echo.For b=1To 17Step 2:o.Write Chr(Clng("&H"^&Mid(%%b,b,W^)^)^):Next)
Cscript /Nologo t.vbs > TXTCOLOR.ex_
Del /f /q /a t.vbs >nul 2>&1
Expand -r TXTCOLOR.ex_ >nul 2>&1
Del /f /q /a TXTCOLOR.ex_ >nul 2>&1
Goto :Eof
  • Partager sur Facebook
  • Partager sur Twitter
4 septembre 2012 à 20:56:45

Wow, bonne chance pour expliquer un tel code ^^
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
4 septembre 2012 à 21:26:33

Si tu parles des lignes 3,4 et de 22 à 61, elles font partie de l'astuce.
Le reste est au contraire très simple à comprendre.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
10 septembre 2012 à 19:44:11

J'ai presque fini mon chapitre !
  • Partager sur Facebook
  • Partager sur Twitter
16 septembre 2012 à 23:16:13

Auto-complétion dans Windows ?????? o0

Sinon si y'a quelqu'un dans le coin, comment on fait pour afficher le premier dossier genre si on a Programmes et Programs Files, on met genre Program~1 pour qu'il ouvre le premier ? Google ne m'aide pas, mais d'ici 1h j'aurais surement trouvé, si quelqu'un est sur le qui-vive :p

$igri_44
  • Partager sur Facebook
  • Partager sur Twitter

Webmaster - https://sigri44.com

17 septembre 2012 à 18:38:34

Programmes est un nom alternatif gracieusement donné par Microsoft pour compliquer la vie des développeurs. En interne, le dossier s'appelle bel et bien « Program Files ». N'oublie pas les guillemets autour du chemin, sinon Files est considéré comme un commutateur.
  • Partager sur Facebook
  • Partager sur Twitter
17 septembre 2012 à 19:59:43

Non pas compris ma question, mais j'ai trouvé réponse, j'explique :
Dans un répertoire, j'ai deux dossier :
- ExempleBidon
- ExembleNul

Si je tape Exemp~1, il va m’afficher mon premier dossier, donc "ExempleBidon", compris ? C'est tout con mais je en m'en rappelais plus ;)
  • Partager sur Facebook
  • Partager sur Twitter

Webmaster - https://sigri44.com

Anonyme
17 septembre 2012 à 22:49:14

Par pitié, n'utilise pas les noms 8.3, c'est une vielle fonctionnalité sur laquelle tu ne peux pas dépendre (on peut la désactiver) et qui n'est pas faite pour être utilisée par des programmes modernes.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
13 octobre 2012 à 18:12:45

J'ai amélioré mon TP :
-LabyGen génère maintenant des labyrinthes parfaits et plus beaux. Il est de plus commenté.
-J'ai rajouté un petit bonus (le temps).

Le fait est que désormais les labyrinthes sont plus durs. Dois-je augmenter le nombre de collisions pour mourir ?
  • Partager sur Facebook
  • Partager sur Twitter
20 octobre 2012 à 16:21:59

J'adore. Il serait par contre utile d'utiliser la commande choice, parce qu'appuyer sur Entrée à chaque fois rend le truc pas très pratique.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
20 octobre 2012 à 16:48:47

J'ai mis set /p pour la compatibilité avec XP qui est encore largement utilisé.
  • Partager sur Facebook
  • Partager sur Twitter
7 novembre 2012 à 14:03:35

Tuto très intéressant, pas de remarques particulières à faire si ce n'est une ou deux coquilles type "é" au lieu de "er". M'enfin je suis pas B Pivot non plus, j'en ai sûrement loupé.
  • Partager sur Facebook
  • Partager sur Twitter
.
7 novembre 2012 à 18:26:51

Citation : Jerk

Tuto très intéressant, pas de remarques particulières à faire si ce n'est une ou deux coquilles type "é" au lieu de "er". M'enfin je suis pas B Pivot non plus, j'en ai sûrement loupé.

Si t'as trouvé ça ailleurs que dans les derniers chapitres encore en travaux, ce serait sympa de dire où.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
14 décembre 2012 à 17:30:37

Le tuto est très bon, ça fait du bien de retrouver un peu de Batch :p
quelques fautes rencontrées :
-Partie 1, chapitre 2 (les variables d'environnement) :
Vous voyez le nom de la variable, n'y touchez surtout pas, sinon Windows ne la retrouvera plus, ce qui pourrait causer de graves problèmes.
En dessous, vous voyez sa valeur. Ne supprimez rien, sauf ce qui a été ajouté par vous même. En revanche, vous pouvez ajouter des chemins, séparés par un ; à chaque fois.
Cliquez sur OK pour valider.
A partir de là, même si vous redémarrez votre ordinateur, la variable PATH est modifiée ; Windows cherchera donc dans le dossier spécifié à chaque fois que vous tapez une commande (en plus des autres dossiers).


-Partie 1, chapitre 3 (Agir sur les fichiers et les dossiers part. 1) :
Eh oui. Nous apprenons ici les bases des commandes sous Windows ; elles ressemblent donc à leurs équivalents graphiques.
Sachez cependant que toutes ces commandes ont nombre de paramètres plus ou moins utiles à utiliser dans certains cas bien particuliers sur lesquels je ne m'étendrai pas.
Utilisez la commande help vue précédemment pour en obtenir une liste.
(Si ça peut vous consoler, l'usage de la commande move pour renommer un fichier tout en le déplaçant ne peut être fait dans l'Explorateur)


-Partie 1, chapitre 3 (Agir sur les fichiers et les dossiers part. 2) :
Ici, c'est donc "prends 'Bla bla bla' (résultat de la comande echo), et mets le dans fichier.txt".

-Partie 1, chapitre 4 (Démarrer et arrêter un programme) :
Vous devriez en être ici :

un navigateur fourni avec Windows que vous connaissez sans doute
Lance l'application avec <couleur="rouge">une</couleur> fenêtre réduite


-Partie 1, chapitre 4 (Le registre) :
Nous allons maintenant traiter la commande reg

puis le second où nous approfondirons un peu plus

contient des informations qui sont mises à jour immédiatement et sont régénérées après chaque démarrage

Faites donc très attention lorsque vous changer<couleur nom"rouge">ez</couleur> la valeur d'une clé ou lorsque vous en supprimerez une, le fonctionnement des programmes et du système en dépend

Ensuite, vous trouverez les différentes clés qui sont ajoutées, modifiées ou supprimées ainsi que les commentaires qui commencent par un point-virgule

Dans la première partie du résultat, vous voyez les valeurs contenues par la clé

Bien sur, la commande n'est pas très utile vu ainsi


Bonne chance pour la suite !
  • Partager sur Facebook
  • Partager sur Twitter
14 décembre 2012 à 18:50:01

Citation : poupou9779

Bien sur, la commande n'est pas très utile vu ainsi</souligne>


T'as oublié l'accent sur « sûr » et je pense pas que « vu » s'écrive réellement au masculin dans cette phrase. Attendons les bac L qui ont bossé 35 ans à l'Académie Française.

Sinon, le reste est corrigé est je compte me remettre à rédiger pendant les vacances. En espérant que le tuto soit fini cette année scolaire…
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 décembre 2012 à 18:39:23

effectivement, j'ai zappé l'accent. Mais j'avais pas pensé que vu se rapportait à la commande ; je pensais qu'il s'agissait du point de vue. C'est donc effectivement sans 'e' :)

Et le code C
#include <stdio.h>

char* fct(void)
{
    char chaine[]="Coucou !";
    return chaine;
}

int main(void)
{
    puts(fct());
    return 0;
}


risque de provoquer une erreur. La fonction fct renvoie l'adresse d'une variable locale qui sera écrasée à la fin de la fonction. Ce code serait mieux

#include <stdio.h>
#include <string.h>

char *fct(char *);

char* fct(char *chaine)
{
    strcpy(chaine, "Coucou !");
    return chaine;
}

int main(void)
{
    char chaine[10];
    puts(fct(chaine));
    return 0;
}
  • Partager sur Facebook
  • Partager sur Twitter
15 décembre 2012 à 22:49:12

Pour le code C, c'était juste un exemple donc c'est pas si grave que ça. Si l'on veut apprendre le C, c'est pas vers un cours de Batch qu'il faut se tourner. Mais bon, comme t'as raison je vais quand même corriger.
  • Partager sur Facebook
  • Partager sur Twitter
17 décembre 2012 à 14:08:55

Citation : Craki

Citation : Jerk

Tuto très intéressant, pas de remarques particulières à faire si ce n'est une ou deux coquilles type "é" au lieu de "er". M'enfin je suis pas B Pivot non plus, j'en ai sûrement loupé.

Si t'as trouvé ça ailleurs que dans les derniers chapitres encore en travaux, ce serait sympa de dire où.


Malheureusement je n'ai pas noté mais je compte recommencer le tuto quand j'aurai un peu de temps (i.e pas tout de suite) et cette fois ci je te ferais un mp si tu veux.
bonne continuation en tous cas
  • Partager sur Facebook
  • Partager sur Twitter
.
30 décembre 2012 à 23:48:37

Salut tout le monde, juste pour vous signaler une mise à jour du plan. Désormais nous suivrons celui-ci :

Partie 1 : Présentation de l'Invite de commandes


  • Chapitre 1 : Qu'est-ce que l'Invite de commandes ?
    • L'Invite de commandes… Késako ?
    • La configuration de l'Invite de commandes et les touches spéciales
    • Les commandes et les commutateurs
  • Chapitre 2 : Nos premières manipulations
    • Un problème de droits ? Explications.
    • La commande help
    • Les variables d'environement
  • Chapitre 3 : La navigation dans les fichiers
    • Se déplacer dans l'ordinateur
    • Agir sur les fichiers et dossiers (partie 1)
    • Agir sur les fichiers et les dossiers (partie 2)
  • Chapitre 4 : Agir sur windows
    • Démarrer et arrêter un programme
    • Démarrer et arrêter un service windows
    • Agir sur un disque dur
    • Afficher des informations sur Windows
    • Le registre

Partie 2 : La programmation en Batch


  • Chapitre 1 : Qu'est ce que le Batch ?
    • Le Batch : présentation
    • PowerBatch
    • Quick Batch File Compiler
    • Notepad++
  • Chapitre 2 : L'affichage de texte et de variables
    • La commande ECHO
    • Les variables - Partie 1 : Créer, modifier et concaténer
    • Les variables - Partie 2 : Demander une valeur à l'utilisateur, effectuer une opération mathématique
    • Les variables spéciales
    • D'autres commandes d'affichage
    • Affichage avancé : bordures et caractères spéciaux
  • Chapitre 3 : Conditions et étiquettes
    • La commande if et ses commutateurs
    • Les tests avancée
    • Les étiquettes
    • La commande call
    • TP : Plus ou Moins
  • Chapitre 4 : La boucle for
    • Une boucle for basique
    • Chaînes et fichiers textes avec for
    • Parcourir les fichiers et les dossiers
    • Les modificateurs d'arguments
  • Chapitre 5 : Quelques notions plus avancées
    • Le monde fabuleux de %ERRORLEVEL%
    • Les redirections
  • Chapitre 6 : Les graphismes en Batch
    • Préparation
    • Le graphisme : gérons d'abord une ligne
    • De la 1D à la 2D
    • Les collisions et les déplacements spéciaux
    • TP : Un jeu de labyrinthe
    • Le graphisme ailleurs
    • Annexe : la mise en forme

Partie 3 : Annexe


  • Chapitre 1 : les commandes externes
    • Qu'est ce qu'une commande externe ?
    • Démonstration de fonctionnement de quelques commandes externes
    • Utilisation d'une DLL
  • Chapitre 2 : Transformer son batch en exécutable
    • Bat2Exe
    • Quick Batch File Compiler (QBFC)
  • Chapitre 3 : Liens utiles et codes sources
    • Quelques sites, forums et livres sur le Batch et l'Invite de commande
    • Codes sources en vrac
    • Aller plus loin (Powershell…)

Les points en rouge ne sont pas encore rédigés ou sont en cours de rédaction.

Nous avons donc supprimé différentes parties, notamment la création de commandes externes et de dll car nous pensons qu'elles devraient plutôt être le sujet d'un minituto, le but ici étant de vous apprendre le Batch et non pas le VB.NET ou le C.
Nous avons également supprimer la partie concernant la création d'un .com avec powerbatch étant donné que ceux-ci sont obsolètes et ne fonctionnent plus sur les systèmes 64 bits.
En revanche, Jio15 s'est ajouté au projet et vous a rédigé tout une partie sur le graphisme en Batch.
Pour finir, il y a eu différentes modifications mineures (changements d'ordre dans les sous-partie) afin d'améliorer la cohérence de l'ensemble du tuto.

Voilà, un grand merci à tous et en particulier à ceux qui prennent le temps de nous signaler les erreurs et fautes d'orthographe. :)
  • Partager sur Facebook
  • Partager sur Twitter
31 décembre 2012 à 0:11:40

Je tiens à ajouter que le changement de plan n'est pas définitif. La moitié de l'équipe n'a pas donné de signe de vie depuis pas mal de temps et nous attendons encore leur réponse. :-°
  • Partager sur Facebook
  • Partager sur Twitter
30 janvier 2013 à 3:03:46

Je me permet d'up :

Je ne retrouve plus la bêta du tuto, j'ai cherché dans les tuto de programmation dans le moteur de recherche du site mais je n'ai pas trouvé à la lettre "P" (car le tuto, c'est bien "Power Batch" ?). J'ai aussi essayé les anciens lien mais sa affiche une erreur, quelqu'un aurait le bon lien ? 

Merci d'avance.

PS: J'en ai lu le début y'a quelques temps, super tuto, continuez !

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 janvier 2013 à 10:49:35

Les bêtas ne sont pas encore migrées. Elles viendront avec le système de rédaction.

  • Partager sur Facebook
  • Partager sur Twitter
30 janvier 2013 à 14:07:48

D'accord, mais quand arriveras t'il ?

Merci encore.

  • Partager sur Facebook
  • Partager sur Twitter