Recherche…


Introduction

Lot et bash sont très différents. Les indicateurs de lot sont indiqués par un / , alors que les indicateurs bash utilisent un - . La capitalisation est importante en bash, mais pas du tout en batch. Les noms de variables par lots peuvent contenir des espaces, mais pas les noms de variables bash. En fin de compte, les deux sont des moyens de manipuler et d’interagir avec la ligne de commande. Sans surprise, il existe une quantité raisonnable de chevauchement entre les capacités des deux systèmes.

Remarques

  • bitsadmin est déconseillé en faveur de l'applet de commande PowerShell BITS mais fonctionne toujours à partir de Windows 10 version 1607
  • certutil sépare les paires de chiffres hexadécimaux avec un espace, donc md5sum renvoie un exemple de valeur de d41d8cd98f00b204e9800998ecf8427e , alors que certutil affiche la même valeur que d4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e
  • cd vers un autre lecteur (par exemple, de C: à D :), le drapeau /d doit être utilisé
  • del ne peut pas supprimer les dossiers, utilisez plutôt rm
  • grep est tellement plus puissant que find et findstr , il n'est pas juste de les comparer; find n'a aucune capacité d'expression rationnelle et findstr possède des capacités d'expression rationnelle extrêmement limitées ( [az]{2} n'est pas une syntaxe valide, mais [az][az] est)
  • for boucles à l'invite de commande Windows ne peut utiliser que des noms de variable à caractère unique; c'est la seule fois que les noms de variables de lot sont sensibles à la casse
  • for boucles à l'invite de commande, utilisez également la forme de variable %A au lieu de %A% - for boucles dans les scripts de commandes, utilisez la forme de variable %%A
  • md crée automatiquement tous les répertoires parents nécessaires, alors que mkdir besoin de l' -p pour le faire
  • rem ne peut pas être utilisé comme caractère de commentaire en ligne à moins qu’il ne soit précédé par un &
  • :: ne peut pas être utilisé comme un commentaire en ligne du tout, et ne doit pas non plus être utilisé dans un bloc de code (ensemble de parenthèses)
  • Notez que certaines commandes Windows comme ping utilisent toujours - comme des indicateurs

Commandes par lots et leurs équivalents Bash

Lot Frapper La description
command /? man command Affiche l'aide pour la commande
bitsadmin wget ou curl Télécharge un fichier distant
certutil -hashfile file_name MD5 md5sum file_name Obtient la somme de contrôle MD5 de nom_fichier
cd pwd Affiche le répertoire actuel
cd directory cd directory Change le répertoire en cours en celui spécifié
cls clear Efface l'écran
copy cp Copie un fichier ou des fichiers d'un chemin source vers un chemin cible
date date Affiche la date ou la définit en fonction de l'entrée de l'utilisateur
del rm Supprime un fichier ou des fichiers
dir ls affiche une liste de fichiers et de répertoires dans le répertoire en cours
echo echo Affiche le texte à l'écran
exit return Quitte un script ou une sous-routine
exit logout Ferme l'invite de commande ou le terminal
fc diff Compare le contenu de deux fichiers
find "string" file_name grep "string" file_name Recherche nom_fichier pour chaîne
findstr "string" file_name grep "string" file_name Recherche nom_fichier pour chaîne
for /F %A in (fileset*) do something for item in fileset*; do; something; done Faites quelque chose pour chaque fichier dans un ensemble de fichiers
for /F %A in ('command') do something `command` Renvoie la sortie d'une commande
for /L %A in (first,increment,last) do something for item in `seq first increment last`; do; something; done Commence par le début et compte par incrément jusqu'à ce qu'il atteigne le dernier
forfiles find Recherche des fichiers correspondant à certains critères
if "%variable%"=="value" ( if [ "variable"="value" ]; then Compare deux valeurs
ipconfig ifconfig Affiche les informations IP
md mkdir Crée de nouveaux dossiers
mklink ln -s Crée un lien symbolique
more more Affiche un écran de sortie à la fois
move mv Déplace un fichier ou des fichiers d'un chemin source vers un chemin cible
pause read -p "Press any key to continue" Suspend l'exécution du script jusqu'à ce que l'utilisateur appuie sur un bouton
popd popd Supprime l'entrée supérieure de la pile de répertoires et accède au nouveau répertoire principal
pushd pushd Ajoute le répertoire en cours à la pile de répertoires et accède au nouveau répertoire principal
ren mv Renomme les fichiers
rem ou :: # Commentaires une ligne de code
rd rmdir Supprime les répertoires vides
rd /s rm -rf Supprime les répertoires, qu'ils soient vides ou non
set variable=value variable=value Définit la valeur de variable à valeur
set /a variable=equation variable=$((equation)) Effectue des calculs (batch ne peut utiliser que des entiers de 32 bits)
set /p variable=promptstring read -p "promptstring" variable Obtient l'entrée utilisateur et la stocke dans une variable
shift shift Décale les arguments de 1 (ou n si fourni)
sort sort Trie la sortie alphabétiquement par ligne
tasklist ps Affiche une liste des processus en cours d'exécution
taskkill /PID processid kill processid Tue le processus avec processid PID
time /t date Affiche l'heure actuelle
type cat Affiche le contenu d'un fichier
where which Recherche dans le répertoire en cours et le PATH pour un fichier ou une commande
whoami id Affiche le nom et le groupe de l'utilisateur actuel

Variables de lot et leur équivalent Bash

Lot Frapper La description
%variable% $variable Une variable régulière
!variable! $variable Une variable à l'intérieur d'un bloc de code lorsque setlocal enabledelayedexpansion est setlocal enabledelayedexpansion
%errorlevel% ou ERRORLEVEL $? Retourne le statut de la commande précédente: 0 si réussi, 1 (ou autre chose) sinon
%1 , %2 , %3 , etc. $1 $2 $3 , etc. Les paramètres donnés à un script
%* $* Tous les paramètres donnés à un script


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow