batch-file
Differenze tra Batch (Windows) e Terminal (Linux)
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 -
certutilsepara le coppie di cifre esadecimali con uno spazio, quindimd5sumrestituirà un valore di esempio did41d8cd98f00b204e9800998ecf8427e, mentrecertutilvisualizza lo stesso valore did4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e - Per eseguire il
cdsu un'altra unità (ad esempio, da C: a D :), è necessario utilizzare l'indicatore/d -
delnon può eliminare cartelle, usa invecerm -
grepè molto più potente difindefindstr, non è quasi corretto confrontarli;findnon ha capacità regex efindstrha capacità regex estremamente limitate ([az]{2}non è una sintassi valida, ma[az][az]è) -
forcicli 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 -
forcicli sul prompt dei comandi utilizzare anche la forma variabile%Aanziché%A%-forloop negli script batch utilizzare la forma variabile%%A -
mdcrea automaticamente tutte le directory madri necessarie, mentremkdirbisogno del flag-pper farlo -
remnon 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
pingutilizza 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