batch-file
Skillnader mellan Batch (Windows) och Terminal (Linux)
Sök…
Introduktion
Batch och bash är helt annorlunda. Batch-flaggor indikeras med a
/
medan bash-flaggor använder a -
. Kapitalisering är viktigt i bash, men (nästan) inte alls i batch. Batchvariabla namn kan innehålla mellanslag, bash variabla namn kan inte. I slutändan är båda sätt att manipulera och interagera med kommandoraden. Inte överraskande finns det en rimlig stor överlappning mellan kapaciteten för de två systemen.
Anmärkningar
-
bitsadmin
förmån för PowerShell cmdlet BITS men fungerar fortfarande från Windows 10 version 1607 -
certutil
separerar par av hexadecimala siffror med ett mellanrum, såmd5sum
kommer att returnera ett exempelvärde påd41d8cd98f00b204e9800998ecf8427e
, medancertutil
visar samma värde somd4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e
- För att
cd
till en annan enhet (till exempel från C: till D :) måste flaggan/d
användas -
del
kan inte ta bort mappar, användrm
istället -
grep
är så mycket kraftfullare änfind
ochfindstr
, det är nästan inte rättvist att jämföra dem;find
har inga regexfunktioner ochfindstr
har extremt begränsade regexfunktioner ([az]{2}
är inte giltig syntax, men[az][az]
är) -
for
slingor i Windows-kommandotolken kan endast använda variabelnamn med enstaka tecken; detta är den enda gången batchvariabelns namn är skiftlägeskänsliga -
for
slingor i kommandotolken använder du även variabelformen%A
istället för%A%
-for
slingor i batchskript använder du variabelformen%%A
-
md
skapar automatiskt alla nödvändiga överordnade kataloger, medanmkdir
behöver-p
flaggan för att göra det -
rem
får inte användas som ett inline-kommentarkaraktär om det inte föregås av ett&
-
::
får inte användas som en inline-kommentar alls, och bör inte heller användas inuti ett kodblock (uppsättning parenteser)
- Observera att vissa Windows-kommandon som
ping
fortfarande använder-
som flaggor
Batchkommandon och deras bas-ekvivalenter
Omgång | Våldsamt slag | Beskrivning |
---|---|---|
command /? | man command | Visar hjälp för kommando |
bitsadmin | wget eller curl | Hämtar en fjärrfil |
certutil -hashfile file_name MD5 | md5sum file_name | Hämtar MD5-kontrollsumman för filnamn |
cd | pwd | Visar den aktuella katalogen |
cd directory | cd directory | Ändrar den aktuella katalogen till den angivna |
cls | clear | Rensar skärmen |
copy | cp | Kopierar en fil eller filer från en källväg till en målsökväg |
date | date | Visar datumet eller ställer in det baserat på användarinmatning |
del | rm | Tar bort en fil eller filer |
dir | ls | visar en lista över filer och kataloger i den aktuella katalogen |
echo | echo | Visar text på skärmen |
exit | return | Avslutar ett skript eller subrutin |
exit | logout | Stänger kommandotolken eller terminalen |
fc | diff | Jämför innehållet i två filer |
find "string" file_name | grep "string" file_name | Söker efter filnamn efter sträng |
findstr "string" file_name | grep "string" file_name | Söker efter filnamn efter sträng |
for /F %A in (fileset*) do something | for item in fileset*; do; something; done | Gör något för varje fil i en uppsättning filer |
for /F %A in ('command') do something | `command` | Returnerar utgången från ett kommando |
for /L %A in (first,increment,last) do something | for item in `seq first increment last`; do; something; done | Börjar först och räknas stegvis tills den når sist |
forfiles | find | Söker efter filer som matchar ett visst kriterium |
if "%variable%"=="value" ( | if [ "variable"="value" ]; then | Jämför två värden |
ipconfig | ifconfig | Visar IP-information |
md | mkdir | Skapar nya mappar |
mklink | ln -s | Skapar en symbolisk länk |
more | more | Visar en skärm med utgången i taget |
move | mv | Flyttar en fil eller filer från en källväg till en målsökväg |
pause | read -p "Press any key to continue" | Pausar skriptkörningen tills användaren trycker på en knapp |
popd | popd | Tar bort den översta posten från katalogbunten och går till den nya toppkatalogen |
pushd | pushd | Lägger till den aktuella katalogen i katalogstacken och går till den nya toppkatalogen |
ren | mv | Byt namn på filer |
rem eller :: | # | Kommenterar en kodrad |
rd | rmdir | Tar bort tomma kataloger |
rd /s | rm -rf | Tar bort kataloger oavsett om de var tomma eller inte |
set variable=value | variable=value | Ställer in värdet på variabeln till värde |
set /a variable=equation | variable=$((equation)) | Utför matematik (parti kan endast använda 32-bitars heltal) |
set /p variable=promptstring | read -p "promptstring" variable | Hämtar användarinmatning och lagrar den i variabel |
shift | shift | Skifter argument med 1 (eller n om det tillhandahålls) |
sort | sort | Sorterar ut alfabetiskt efter rad |
tasklist | ps | Visar en lista över körprocesser |
taskkill /PID processid | kill processid | Dödar processen med PID- processid |
time /t | date | Visar aktuell tid |
type | cat | Visar innehållet i en fil |
where | which | Söker i den aktuella katalogen och PATH efter en fil eller kommando |
whoami | id | Visar namnet och gruppen för den aktuella användaren |
Batchvariabler och deras basiska likvärdiga
Omgång | Våldsamt slag | Beskrivning |
---|---|---|
%variable% | $variable | En vanlig variabel |
!variable! | $variable | En variabel inuti ett kodblock när setlocal enabledelayedexpansion är på |
%errorlevel% eller ERRORLEVEL | $? | Returnerar status för föregående kommando: 0 om det lyckas, 1 (eller något annat) om inte |
%1 , %2 , %3 , etc. | $1 , $2 , $3 , etc. | Parametrarna som ges till ett skript |
%* | $* | Alla parametrar som ges till ett skript |
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow