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
-
bitsadminförmån för PowerShell cmdlet BITS men fungerar fortfarande från Windows 10 version 1607 -
certutilseparerar par av hexadecimala siffror med ett mellanrum, såmd5sumkommer att returnera ett exempelvärde påd41d8cd98f00b204e9800998ecf8427e, medancertutilvisar samma värde somd4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e - För att
cdtill en annan enhet (till exempel från C: till D :) måste flaggan/danvändas -
delkan inte ta bort mappar, användrmistället -
grepär så mycket kraftfullare änfindochfindstr, det är nästan inte rättvist att jämföra dem;findhar inga regexfunktioner ochfindstrhar extremt begränsade regexfunktioner ([az]{2}är inte giltig syntax, men[az][az]är) -
forslingor i Windows-kommandotolken kan endast använda variabelnamn med enstaka tecken; detta är den enda gången batchvariabelns namn är skiftlägeskänsliga -
forslingor i kommandotolken använder du även variabelformen%Aistället för%A%-forslingor i batchskript använder du variabelformen%%A -
mdskapar automatiskt alla nödvändiga överordnade kataloger, medanmkdirbehöver-pflaggan för att göra det -
remfå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
pingfortfarande 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