Table des matières:

Lot avancé : 12 étapes
Lot avancé : 12 étapes

Vidéo: Lot avancé : 12 étapes

Vidéo: Lot avancé : 12 étapes
Vidéo: NEW CAMP NOU - Phased construction while continuing to play matches 2024, Juillet
Anonim

mais ce n'est pas grave, utilisez simplement la commande CD ou CHDIR pour changer de répertoire. Mais cela n'a pas vraiment d'importance dans ce cas.", "top":0.08480565371024736, "left":0.014285714285714285, "height":0.8586572438162544, "width":0.9357142857142857}]">

Lot avancé
Lot avancé
Lot avancé
Lot avancé
Lot avancé
Lot avancé

S'IL VOUS PLAÎT DIRECTEZ TOUTES LES QUESTIONS QUE VOUS POUVEZ AVOIR À MON BLOG:https://tamsanh.com/blog/2008/07/11/batch-tutorial-3-advanced-batch/Je ne visite plus les instructables, et vous obtiendrez un plus rapide réponse de cette façon. Hé les gars! Tam Nguyen ici. Cela a été long à venir, mais c'est ici maintenant! Je vous présente le prochain volet de mes didacticiels Batch ! À savoir: ECHO CommandCD CommandDIR CommandSi vous n'avez pas lu les deux autres, je vous suggère de regarder ces commandes rapidement. J'attendrai ici. D'accord ! À la fin de ce Instructable, vous serez intime avec: START CommandSET CommandIF CommandGOTO Commandand> et >> ParamètresAvec ces commandes, vous pourrez créer des fichiers batch dynamiques qui peuvent changer en fonction de l'entrée de l'utilisateur, et créez et développez. Alors ouvrons cette bonne invite de commandes et commençons! Exécutez -> cmd Alternativement, vous pouvez aller à: Démarrer-> Fichiers de programme-> Accessoires-> Invite de commandes, j'ai donc divisé certaines commandes en plusieurs pages principalement à des fins esthétiques; J'ai aimé voir les images tout en lisant le texte sans avoir à faire défiler vers le haut et vers le bas. Règle de base pour la visualisation des images; Habituellement, après chaque extrait de code, il y a une image. Profitez-en !

Étape 1: Commande START

Commande START
Commande START
Commande START
Commande START
Commande START
Commande START
Commande START
Commande START

La commande START est une jolie petite commande qui démarre des choses ! C'est une commande simple, et elle nous aidera à nous réchauffer avant d'aborder les commandes les plus difficiles. Les paramètres de la commande sont exactement ce que vous pensez qu'ils sont.

DÉMARRER ThingToBeStarted.exeAssez simple

DÉMARRER WMPlayer.exeNon seulement vous pouvez DÉMARRER les.exe, vous pouvez également saisir un site Web, et il s'ouvrira dans votre navigateur par défaut

COMMENCER www. Instructables.comAssez facile, hein ? D'accord. Passons maintenant à la vraie viande de l'Instructable: commande SET.

Étape 2: Commande SET - Théorie des cordes (1/4)

Commande SET - Théorie des cordes (1/4)
Commande SET - Théorie des cordes (1/4)
Commande SET - Théorie des cordes (1/4)
Commande SET - Théorie des cordes (1/4)

La commande SET: le définiteur de variable. Ah. Variables. L'ambroisie du développeur. Les variables sont des bits de mémoire qui sont… euh, variables. Pas de SI ET ni de NON à ce sujet ! (lol désolé). D'accord! Alors, comment fonctionne ce bébé ? Très simplement, les paramètres de la commande SET sont: SET VariableName=Variable ValueSET par lui-même créera des variables de chaîne.

SET TestVS=Test la chaîne de variable !Dans ce cas, nous venons de stocker la valeur "Test Variable String!" dans la variable TestVS. Eh bien, ce n'est que du plaisir et des jeux, mais comment récupérons-nous la valeur de la variable ? Nous utilisons %. Il suffit d'ajouter % autour du nom de la variable

ÉCHO %TestVS%Ok cool, mais qu'est-ce que ça peut faire d'autre ?

Étape 3: SET Commande - Mr. Math (2/4)

Commande SET - Mr. Math (2/4)
Commande SET - Mr. Math (2/4)
Commande SET - Mr. Math (2/4)
Commande SET - Mr. Math (2/4)
Commande SET - Mr. Math (2/4)
Commande SET - Mr. Math (2/4)

Peut-il faire des maths ? Eh bien, faisons un simple lot pour le tester.

@ECHO OFFSET Test=1ECHO %Test%SET Test=%Test%-1ECHO %Test%PAUSEOh, qu'est-ce qui s'est passé ? Cela aurait dû fonctionner ! Attendez une minute… qu'est-ce que c'était que les commandes SET ne faisant que des chaînes ? Oui. La commande SET en elle-même ne créera qu'une variable de chaîne, ce qui signifie qu'elle créera l'interprétation la plus littérale de la valeur. Il ne pense pas à "1 - 1" égal à "0", il pense à "1 - 1" égal à "1 - 1". Alors, comment pouvons-nous changer cela? Nous voulons que la variable ne soit pas directement copiée, mais évaluée. Cela signifie que nous voulons le transformer d'une chaîne en une expression ! Un changement très simple, ajoutez simplement un /a à la commande SET. Voici un simple fichier batch pour le voir en action, ou vous pouvez simplement le saisir dans le manuel de l'invite de commande. Je suggère ce dernier; c'est beaucoup plus rapide, et le code n'est pas trop compliqué, mais si vous voulez vraiment le fichier batch, le voici

@ECHO OFFSET /a Test=2+2ECHO %Test%PAUSEFantastique! Il l'exprimait parfaitement. Maintenant, nous savons quels changements doivent être apportés à notre 'math test.bat

@ECHO OFFSET /a Test=1ECHO %Test%SET /a Test=%Test%-1ECHO %Test%PAUSED'accord. Alors allons-y ! Super ! Cela a parfaitement fonctionné ! Mais qu'en est-il ensuite ?

Étape 4: Commande SET - Saisie utilisateur (3/4)

Commande SET - Entrée utilisateur (3/4)
Commande SET - Entrée utilisateur (3/4)
Commande SET - Entrée utilisateur (3/4)
Commande SET - Entrée utilisateur (3/4)
Commande SET - Entrée utilisateur (3/4)
Commande SET - Entrée utilisateur (3/4)

Le SET a également la capacité de demander à l'utilisateur une entrée. En ajoutant /p aux paramètres SET, il le transforme d'un paramètre de variable normal en un paramètre de variable contrôlé par l'utilisateur.

SET /p UDefine=Avec le /p, le programme fait une pause et attend l'entrée de l'utilisateur. Mais attendez, je ne vois pas de paramètre /a, cela signifie-t-il que la variable est uniquement une chaîne? Eh bien, en quelque sorte. Le /p des paramètres annule complètement le /a, et si vous l'essayez, vous obtenez simplement une erreur d'opérande manquant. Cela signifie que la variable définie par l'utilisateur ne sera pas en mesure d'évaluer les expressions. Alors, que peut-on faire ? Eh bien, voici une astuce que j'ai pensé que nous pouvons utiliser. La commande SET ne permet pas l'utilisation simultanée des paramètres /p et /a, n'est-ce pas ? Eh bien, qu'en est-il de l'utilisation séquentielle des paramètres /a et /p ? Ahhh… vous avez des bottes sournoises

@ECHO OFFECHO Calculatrice Version 1.0ECHO. SET /p UDefine=SET /a UDefine=%UDefine%ECHO =ECHO %UDefine%ECHO. PAUSEBelle calculatrice que tu as là. Si vous ne l'avez pas encore compris, le {{{ECHO.}}} est une ligne vide. N'est-ce pas cool ?

Étape 5: SET Command - Plus qu'il n'y paraît (4/4)

Commande SET - Plus qu'il n'y paraît (4/4)
Commande SET - Plus qu'il n'y paraît (4/4)
Commande SET - Plus qu'il n'y paraît (4/4)
Commande SET - Plus qu'il n'y paraît (4/4)
Commande SET - Plus qu'il n'y paraît (4/4)
Commande SET - Plus qu'il n'y paraît (4/4)

À ce stade, il peut sembler que les variables de la commande SET ne sont bonnes que pour les chaînes et les expressions. Pas vrai. Les variables sont, en fait, très très flexibles et ne se limitent pas aux ECHO. Avez-vous essayé de taper une variable seule ?

SET Test=Instructables%Test%Quelle erreur étrange… il dit que la commande "Instructables" n'est pas reconnue, pas que %Test% n'avait pas de syntaxe. Cela signifie donc que DOS traite chaque variable comme si elle avait été saisie à la main. Eh bien, et si

SET Test=START cmd.exe%Test%Impressionnant! Cela a fonctionné ! DOS traite chaque variable comme si elle avait été tapée par l'utilisateur et l'exécute en conséquence. Voici un code intéressant: (Il suffit de copier/coller; c'est un peu fastidieux.

@ECHO OffSET Variable1=ECSET Variable2=HSET Variable3=O CSET Variable4=ooSET Variable5=l!ECHO %Variable1%%Variable2%%Variable3%%Variable4%%Variable5%ECHO.%Variable1%%Variable2%%Variable3%%Variable4% %Variable5%PauseN'est-ce pas propre ? Chaque variable contient deux lettres du message entier (sauf Variable2), et en mettant les variables dans l'ordre, chaque lettre s'additionne et termine la commande entière d'ECHO Cool ! La commande SET est l'une des commandes les plus compliquées et les plus puissantes du Dictionnaire DOS.

Étape 6: Commande SI - Tout le monde est égal (1/2)

Commande SI - Tout le monde est égal (1/2)
Commande SI - Tout le monde est égal (1/2)
Commande SI - Tout le monde est égal (1/2)
Commande SI - Tout le monde est égal (1/2)
Commande SI - Tout le monde est égal (1/2)
Commande SI - Tout le monde est égal (1/2)

Cet opérande conditionnel classique. Basique, mais néanmoins puissant. Pour ceux qui n'ont jamais programmé auparavant, la commande IF est exactement ce qu'elle sonne. Si une expression dans la syntaxe s'avère vraie (ou NON vraie), alors la toute prochaine séquence de commandes sera exécutée. La ligne de commande de base se présente ainsi:

SI %variable1%==%variable2% ECHO Cette partie est exécutéeou si vous avez plusieurs syntaxes

@ECHO OFFIF %variable1%==%variable2% (ECHO Cette partie est exécutée. ECHO C'est aussi le cas.) ELSE (ECHO Si variable1 n'est pas = variable 2, cela arrive. ECHO et cela arrive aussi.)Remarque: le placement particulier des parenthèses n'est pas dû au fait que je ne crois pas au code organisé, mais parce que s'ils ne sont pas à ces endroits, l'intégralité de l'extrait IF ne fonctionnera pas. Ainsi, s'il y a une erreur avec votre code IF, c'est probablement à cause de la parenthèse. Pour exécuter ce lot particulier, j'ai en fait utilisé l'invite de commande elle-même, afin de pouvoir définir les variables sans avoir à modifier le multiple IfVariableTest.bat fois.

Étape 7: Commande IF - Mais je suis plus grand que toi (2/2)

IF Command - Mais je suis plus grand que toi (2/2)
IF Command - Mais je suis plus grand que toi (2/2)
IF Command - Mais je suis plus grand que toi (2/2)
IF Command - Mais je suis plus grand que toi (2/2)
IF Command - Mais je suis plus grand que toi (2/2)
IF Command - Mais je suis plus grand que toi (2/2)

Ok, donc vous avez une belle instruction IF et tout, et vérifier si les variables sont égales ou non est bien, mais ne correspond pas tout à fait à la facture. Je veux que quelque chose se passe si variable1 est inférieur à l'autre variable ! Pour ceux d'entre nous, programmeurs, je sais que cela semble être une tâche simple. Faites juste ce que font tous les autres langages de programmation ! Tenez bien vos chevaux cow-boy. Pas si vite. Un fichier Batch n'est pas seulement votre vieux langage de programmation habituel. Aussi idiot que cela puisse paraître, le "" ne fonctionne pas avec les fichiers batch.

EQU - Égal - ==NEQ - Non égalLSS - Inférieur àGTR - Supérieur àLEQ - Inférieur ou égal àGEQ - Supérieur ou égal àIl suffit de mettre ces opérandes à la place de l'exemple ==

SI 32 GTR 3 ECHO, cela fonctionnera

@ECHO OFFIF 32 GEQ 32 (ECHO 32 est supérieur ou égal à 32) ELSE (ECHO 32 est définitivement égal à 32)PAUSEIF 32 LSS 32 (ECHO 32 est inférieur à 32 ? Je ne pense pas.) ELSE (ECHO 32 est Pas moins de 32. Fin de l'histoire.)PAUSE

Étape 8: Commande GOTO

Commande GOTO
Commande GOTO
Commande GOTO
Commande GOTO
Commande GOTO
Commande GOTO

La commande GOTO. Il fait exactement ce qu'il dit; il VA À une étiquette dans le script du fichier batch. Pour utiliser cette commande, vous devez d'abord avoir une étiquette en place. Les étiquettes ressemblent à ceci:

:Étiquette1C'est simplement un deux-points avant une série de lettres et/ou de chiffres non espacés. La commande GOTO est structurée comme ceci

GOTO Label1C'est si facile! À bien y penser, je ne sais pas vraiment pourquoi je n'ai pas mis cela dans le lot légèrement avancé. Dans tous les cas, cette commande peut être utilisée pour répéter un fichier batch en simplement GOTO une étiquette qui exécute à nouveau la commande GOTO

@ECHO OFF:RepeatMeECHO Ceci sera répété à moins que vous n'appuyiez sur "CTRL-C" GOTO RepeatMeLe fichier batch dit la vérité, soit dit en passant. CTRL-C est la pause universelle et l'invite de résiliation. CTRL-S est simplement Pause. Mais la fermeture de la fenêtre fonctionne tout aussi bien. Le GOTO peut également ignorer ou réorganiser votre code

GOTO TurnEOffGOTO MultipleGotoECHO Cet ECHO va être ignoré.:MultipleGotoGOTO 3:ENDPAUSEEXIT:1ECHO La finGOTO END:3ECHO Ceci sera affiché en premierGOTO 2:TurnEOff@ECHO OFFGOTO MultipleGoto:2ECHO Ceci est le deuxième, même s'il est le dernier dans le code. GOTO 1Le code ci-dessus a été structuré de manière confuse dans le but de souligner la capacité du GOTO à sauter dans le code.

Étape 9: > Paramètre (1/2)

Exemple d'implémentation
Exemple d'implémentation
Exemple d'implémentation
Exemple d'implémentation
Exemple d'implémentation
Exemple d'implémentation
Conclusion: Notes finales
Conclusion: Notes finales

Commande>Nom de fichierOk, disons que nous sommes dans un certain répertoire. Nous utilisons ensuite la commande DIR, qui, si vous lisez les bases de Batch, vous sauriez qu'elle affiche le contenu de votre répertoire actuel

C:\Users\Neo\>DIRSortirait normalement

Le volume dans le lecteur C est le numéro de série du volume HP est BC7E-E26C Répertoire de C:\Users\Neo2007-30-06 11:14 AM.2007-30-06 11:14 AM..2007-17-03 18:41 PM.idlerc2007-02-19 15:14 Contacts2007-06-19 22:44 Bureau 2007-06-29 08:47 Documents2007-06-19 10:35 Téléchargements2007-02-19 15:14 Favoris1902// 2007 15:14 Liens 12.05.2007 16:01 Musique 2007-06-30 01:20 Images 07.04.2007 15:08 Jeux sauvegardés/2007-02-19 15:14 Recherches 2007-03-01 07:23 PM 242, 947 Test Record.wma2007-06-19 10:39 AM Vidéos2007-06-18 09:57 1, 324, 574 wp_screenprint_mc.pdf 2007-06-18 09:59 AM 73, 996, 533 wp_tshirt_full.mp4 4 Fichier(s) 75, 564, 054 octets 14 Dir(s) 132, 927, 537, 152 octets libresMais, si nous ajoutons le > et à cela

C:\Users\Neo\DIR>DIRContents.txtNous n'obtenons pas de sortie, mais à la place, nous obtenons un tout nouveau fichier texte nommé DIRContents.txt qui contient la sortie ! Coolness!Mais attendez, il y a un problème! Je veux avoir plusieurs sorties dans le même fichier, mais mon > continue de l'écraser et de ne pas l'ajouter ! Que fais-je?

Étape 10: >> Paramètre (2/2)

DIR>>DIRContents.txtSoigné! A parfaitement fonctionné ! Alors attend. Cela signifie-t-il que je peux écrire tout ce que je veux dans un fichier texte ? je veux l'essayer

Le lot est génial>Awesome.txtQuoi? Pourquoi ça n'a pas marché ? C'est parce que le paramètre n'écrit que la sortie des commandes légitimes, pas seulement tout ce que vous saisissez. Mais c'est un problème qui est simplement résolu. N'oubliez pas que les paramètres enregistrent la sortie des commandes. Quelle commande a une sortie que nous pouvons contrôler ? Le commandement ECHO

ECHO Batch Is Awesome>Awesome.txtECHO Je suis tellement content de le savoir.>>Awesome.txtYay! Rappelles toi. Le >> ajoute la sortie à la ligne suivante du fichier.

Étape 11: Exemple de mise en œuvre

D'accord. Alors rassemblons tout ça ! Voici quelques exemples de codes que j'ai créés et qui utilisent les commandes que je vous ai montrées dans cette instructable. Ce code ajoutera 1 à une variable en continu et affichera le résultat indéfiniment.

@ECHO OFFSET /a num=1:RepeatECHO %num%SET /a num=%num%+1GOTO RépétitionCe code démarrera CMD.exe 5 fois

@ECHO OFFSET /a RepeatNum=5:OpenIF %RepeatNum%==0 GOTO EndSTART CMD.exeSET /a RepeatNum=%RepeatNum%-1GOTO Open:EndCe code créera un fichier batch dans le C:\Users\Neo, et l'exécutera

@ECHO OFFCHDIR C:\Users\NeoECHO @ECHO OFF>Bonjour.batECHO ECHO Bonjour !>>Bonjour.batECHO ECHO I&aposm dans votre lecteur C !>>Bonjour.batECHO PAUSE>>Bonjour.batC:\Users\Neo\Bonjour. chauve-sourisPauseCeci est un petit lot de jeux. Vous devez deviner le nombre

@ECHO OFFSET /a GuessNum=0SET /a Answer=%RANDOM%ECHO Devinez à quel numéro je pense. % ECHO Mon numéro est inférieur. IF %Guess%==%Answer% GOTO ENDECHO. SET /a GuessNum=%GuessNum%+1GOTO Réessayer:ENDECHO Vous avez raison ! La réponse était %Answer%ECHO Il a fallu %GuessNum% Guesses. ECHO. PAUSEEt celui-ci, j'aime beaucoup. Cependant, si vous ne faites pas attention, cela peut devenir incontrôlable assez rapidement, selon la capacité de votre ordinateur. Ce que ce fichier fait, c'est qu'il crée indéfiniment des fichiers texte numérotés dans un répertoire appelé lolnumbers. Chacun de ces fichiers texte contient le DIR du répertoire lolnumbers. Le fait est que le répertoire est de plus en plus plein de fichiers texte, de sorte que chaque fichier texte consécutif est plus volumineux que le précédent. Le résultat est un dossier dont la taille totale devient de plus en plus grande à chaque seconde

@ECHO OFFSET /a num=1MKDIR lolnumbersCD lolnumbers:RestartDIR>%num%.txtSET /a num+=1GOTO RedémarrerCe sont des codes assez basiques. Expérimentez-les à votre guise.

Étape 12: Conclusion: Notes finales

Phew. Nous avons couvert beaucoup de choses dans cette instructable. Celui-ci est en fait 3 fois plus long que le précédent. J'espère que vous l'apprécierez ! Juste quelques rappels avant de partir. N'oubliez pas: lors de la définition d'une variable, ne mettez jamais d'espace entre la variable et sa valeur. OUI:

SET variable1=ValeurL'espace supplémentaire fera que votre variable sera vide. NO

SET variable1 = ValeurAussi, les multiples FI. N'oubliez pas de formater correctement la parenthèse: OUI

IF 1==1 (ECHO One Equals One!) ELSE (ECHO Quelque chose ne va pas avec ce programme.)NON

SI 1==1(ECHO Un égal à un !)ELSE(ECHO Quelque chose ne va pas avec ce programme.)Il y a aussi des variables intégrées

%CD%%DATE%%TIME%%RANDOM%%CD% Développe jusqu'au répertoire actuel. Fondamentalement, le chemin derrière les premiers >%DATE% et %TIME% sont la date et l'heure.%RANDOM% donne un nombre aléatoire entre 0 et 32767. La plage ne peut pas être modifiée, je ne pense pas. Et c'est essentiellement tout ! J'espère que vous avez apprécié cette instructable, j'ai travaillé très dur dessus. J'espère que cela compensera l'absence de 10 mois. Maintenant, la mauvaise nouvelle. J'aurai un peu de mal à répondre aux questions au cours des prochains mois, car je serai à l'étranger. Mais si vous avez une question, laissez un commentaire n'importe qui. Si j'ai accès à un ordinateur, je ne manquerai pas de répondre, mais je ne pense pas que ce sera nécessaire; Instructables est une communauté amicale, et je suis sûr que quelqu'un vous aidera dans votre sort.

Conseillé: