Ricerca…


introduzione

Batch e bash sono abbastanza diversi. I flag batch sono indicati con un / , mentre i flag bash usano un - . La capitalizzazione conta in bash, ma (quasi) per nulla in batch. I nomi delle variabili batch possono contenere spazi, i nomi delle variabili bash non possono. In definitiva, entrambi sono modi di manipolare e interagire con la riga di comando. Non sorprendentemente, vi è una quantità abbastanza grande di sovrapposizione tra le capacità dei due sistemi.

Osservazioni

  • bitsadmin è deprecato a favore del cmdlet BITS di PowerShell ma funziona ancora da Windows 10 versione 1607
  • certutil separa le coppie di cifre esadecimali con uno spazio, quindi md5sum restituirà un valore di esempio di d41d8cd98f00b204e9800998ecf8427e , mentre certutil visualizza lo stesso valore di d4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e
  • Per eseguire il cd su un'altra unità (ad esempio, da C: a D :), è necessario utilizzare l'indicatore /d
  • del non può eliminare cartelle, usa invece rm
  • grep è molto più potente di find e findstr , non è quasi corretto confrontarli; find non ha capacità regex e findstr ha capacità regex estremamente limitate ( [az]{2} non è una sintassi valida, ma [az][az] è)
  • for cicli sul prompt dei comandi di Windows è possibile utilizzare solo nomi di variabili a singolo carattere; questa è l'unica volta in cui i nomi delle variabili batch sono sensibili al maiuscolo / minuscolo
  • for cicli sul prompt dei comandi utilizzare anche la forma variabile %A anziché %A% - for loop negli script batch utilizzare la forma variabile %%A
  • md crea automaticamente tutte le directory madri necessarie, mentre mkdir bisogno del flag -p per farlo
  • rem non può essere usato come un carattere di commento in linea a meno che non sia preceduto da un &
  • :: non può essere usato come commento in linea e non deve essere usato all'interno di un blocco di codice (insieme di parentesi)
  • Si noti che alcuni dei comandi di Windows come ping utilizza ancora - come bandiere

Comandi batch e loro equivalenti Bash

partita bash Descrizione
command /? man command Mostra l'aiuto per il comando
bitsadmin wget o curl Scarica un file remoto
certutil -hashfile file_name MD5 md5sum file_name Ottiene il checksum MD5 di nome_file
cd pwd Visualizza la directory corrente
cd directory cd directory Cambia la directory corrente in quella specificata
cls clear Cancella lo schermo
copy cp Copia un file o file da un percorso di origine a un percorso di destinazione
date date Visualizza la data o la imposta in base all'input dell'utente
del rm Elimina un file o file
dir ls visualizza un elenco di file e directory nella directory corrente
echo echo Visualizza il testo sullo schermo
exit return Esce da uno script o subroutine
exit logout Chiude il prompt dei comandi o il terminale
fc diff Confronta i contenuti di due file
find "string" file_name grep "string" file_name Cerca file_name per stringa
findstr "string" file_name grep "string" file_name Cerca file_name per stringa
for /F %A in (fileset*) do something for item in fileset*; do; something; done Fai qualcosa per ogni file in un set di file
for /F %A in ('command') do something `command` Restituisce l'output di un comando
for /L %A in (first,increment,last) do something for item in `seq first increment last`; do; something; done Inizia all'inizio e conta per incrementi fino a raggiungere l' ultimo
forfiles find Cerca i file che corrispondono a un determinato criterio
if "%variable%"=="value" ( if [ "variable"="value" ]; then Confronta due valori
ipconfig ifconfig Visualizza le informazioni IP
md mkdir Crea nuove cartelle
mklink ln -s Crea un collegamento simbolico
more more Visualizza una schermata di output alla volta
move mv Sposta un file o file da un percorso di origine a un percorso di destinazione
pause read -p "Press any key to continue" Mette in pausa l'esecuzione dello script fino a quando l'utente preme un pulsante
popd popd Rimuove la voce superiore dallo stack di directory e passa alla nuova directory superiore
pushd pushd Aggiunge la directory corrente allo stack di directory e passa alla nuova directory superiore
ren mv Rinomina i file
rem o :: # Commenti una riga di codice
rd rmdir Rimuove le directory vuote
rd /s rm -rf Rimuove le directory indipendentemente dal fatto che siano o meno vuote
set variable=value variable=value Imposta il valore della variabile su valore
set /a variable=equation variable=$((equation)) Esegue matematica (batch può usare solo numeri interi a 32 bit)
set /p variable=promptstring read -p "promptstring" variable Ottiene l'input dell'utente e lo memorizza in variabile
shift shift Sposta gli argomenti di 1 (o n se fornito)
sort sort Ordina l'output in ordine alfabetico per riga
tasklist ps Mostra un elenco di processi in esecuzione
taskkill /PID processid kill processid Uccide il processo con processid PID
time /t date Visualizza l'ora corrente
type cat Visualizza il contenuto di un file
where which Cerca la directory corrente e il PERCORSO per un file o comando
whoami id Visualizza il nome e il gruppo dell'utente corrente

Variabili batch e il loro equivalente Bash

partita bash Descrizione
%variable% $variable Una variabile regolare
!variable! $variable Una variabile all'interno di un blocco di codice quando è attiva l' setlocal enabledelayedexpansion
%errorlevel% o ERRORLEVEL $? Restituisce lo stato del comando precedente: 0 se ha successo, 1 (o qualcos'altro) se non lo è
%1 , %2 , %3 , ecc. $1 , $2 , $3 , ecc. I parametri dati a uno script
%* $* Tutti i parametri dati a uno script


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow