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 , medan certutil visar samma värde som d4 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änd rm istället
  • grep är så mycket kraftfullare än find och findstr , det är nästan inte rättvist att jämföra dem; find har inga regexfunktioner och findstr 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, medan mkdir 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