wtorek, 11 września 2012

Wiersz poleceń Windows


Wiersz poleceń

Wstęp

To jest artykuł o standardowym – odziedziczonym z wcześniejszych wersji systemu Windows a nawet z MS-DOSa – wierszu poleceń (powłoce) Windows 7, czylicmd.exe. Zapewne większość wymienionych tu poleceń będzie działało w starszych wersjach Windows.

Kruczki i sztuczki

Szybkie otwieranie konsoli tekstowej z bieżącym katalogiem: przejdź do żądanego folderu w oknie Eksploratora. Przytrzymując naciśnięty klawiszShift, kliknij ikonę folderu prawym przyciskiem myszy i wybierz polecenie Otwórz okno polecenia tutaj (niedostępne w Windows XP).
Szybkie pobieranie ścieżki do pliku: w Eksploratorze Windows wciśnij Shift i z menu kontekstowego wybierz Kopiuj jako ścieżkę. Żeby wpisać ścieżkę do pliku w wierszu poleceń można również przeciągnąć plik z Eksploratora Windows do powłoki.
Podczas wpisywania ścieżek dostępu zarówno w Eksploratorze jak i wierszu poleceń można zamiennie używać znaku backslasha i slasha.
Max. długość polecenia w wierszu poleceń: 8191 znaków.
Przydatne skróty klawiaturowe
Ctrl+Homeusuwa znaki stojące przed kursorem aż do początku wiersza
Ctrl+Endusuwa znaki stojące przed kursorem aż do końca wiersza
Ctrl+Zznak EOF (czyli odpowiednik Ctrl+D z Linuxa)
Ctrl+Break lub Ctrl+Cprzerywa działanie skryptu
Niektóre polecenia wiersza poleceń muszą być uruchamiane w trybie administratora. Aby uruchomić cmd.exe w trybie administratora kliknij na ikonce programu na pulpicie (lub w menu Start) prawym klawiszem myszy i wybierz opcję Uruchom jako Administrator.
Otwieranie konsoli na pełny ekran:
  1. utwórz skrót do cmd na pulpicie,
  2. odpal wiersz poleceń ze skrótu i wykonaj polecenie: wmic,
  3. zmaksymalizuj okno – powinno otworzyć się na cały ekran,
  4. żeby za każdym razem otwierał się na cały ekran: wejdź we właściwości skrótu, zaznacz opcję Quick edit mode.
W niektórych systemach Alt+Enter w oknie konsoli maksymalizuje okno na pełny ekran.

Podstawy

Typowe znaczenie opcji:
  • /? – wyświetla krótką pomoc na temat dostępnych opcji
  • /Q – tryb „cichy” – bez wypisywania na ekran
  • /S – rekurencyjnie
help polecenie
odpowiednik man w Linuksie; wyświetla pomoc na temat polecenia; poleceniem może być np. „if„; bez parametru wymienia wszystkie dostępne polecenia. Patrz także Command Line Reference
Instrukcja goto:
  :DALEJ
  ...
  GOTO DALEJ
polecenie1 & polecenie2
sekwencyjne wykonanie poleceń niezależnie od ich wyników
polecenie1 && polecenie2
wykonuje polecenie2 pod warunkiem że jego poprzednik wykonał się poprawnie
polecenie1 || polecenie2
wykonuje polecenie2 pod warunkiem że jego poprzednik wykonał się z błędem
dir > nul
to samo co ls > /dev/null w Linuxie
rem napis
komentarz
@polecenie opcje
wyświetla na stdout tylko wynik polecenia, bez samego polecenia
@echo off
od tej pory wykonywane polecenia nie będą wypisywane na stdio
%1
wartość pierwszego parametru skryptu wsadowego
FOR %%B IN (A B C) DO ECHO %%B
pętla for
for %f in (*.doc) do find „Gwiazdka” „%f”
szuka napisu „Gwiazdka” we wszystkich plikach *.doc bieżącego katalogu
for /r %w in (*.*) do echo %w
trawersuje drzewo katalogów i wyświetla ścieżki do wszystkich katalogów w drzewie
for /l %w in (1,2,10) do echo %w
iteruje zmienną w od 1 do 10 co 2
if [not] ERRORLEVEL zmienna polecenie [else polecenie2]
jeśli kod błędu ostatnio zwróconego polecenia był >= od podanej liczby
if [not] str1==str2 polecenie [else polecenie2]
jeśli podane ciągi są identyczne
if /I str1 op str2 polecenie
op to jedno z: equ/new/lss/leq/gtr/geq; opcja /I ignoruje wielkość liter
if [not] EXIST nazwa_pliku polecenie [else polecenie2]
jeśli wskazany plik istnieje
start katalog
uruchamia Eksplorator Windows dla wskazanego katalogu
start /B skrypt.bat
uruchamia skrypt bez otwierania nowego okna
call skrypt.bat params
uruchamia skrypt z wnętrza innego skryptu
cls
czyści ekran
date /t
wyświetla bieżącą datę
doskey /history
wyświetla historię wykonanych poleceń
doskey copy=copy /v $1 $2
definiuje makro (coś w rodzaju aliasu w Bashu w Linuxie); od tej pory każde użycie poleceniacopy będzie dodatkowo wykonywało weryfikację poprawności kopii
pause
czeka na naciśniecie dowolnego klawisza

Ciekawe polecenia

System plików

cd \
przechodzi do katalogu głównego bieżącego dysku
rename *2009* *2010*
podmienia łańcuchy w nazwach plików (UWAGA: stara nazwa plików i nowa musi być tej samej długości, chyba że zmiana pojawia się na końcu pliku)
xcopy
dużo bardziej rozbudowana wersja copy
xcopy *.doc g
\dokumenty /s: kopiuje wszystkie pliki o rozszerzeniu *.doc w bieżącym katalogu oraz podkatalogach do katalogu g:/dokumenty, gdzie zostanie utworzona analogiczna struktura katalogów
xcopy %userprofile%\documents\*.doc \\server\users\%username% /d
08-23-2007: kopiuje pliki *.doc które zostały zmodyfikowane danego dnia lub później
xcopy /s /h /r /i /d /y folder_zrodlowy folder_docelowy
tworzy lub aktualizuje kopię zapasową uwzględniając podkatalogi (/s), kopiując tylko nowsze pliki (/d), w tym pliki ukryte (/h) i nie pytając o potwierdzenie (/y)
Inne ciekawsze opcje:
  • /E - kopiuje również puste katalogi
  • /EXCLUDE:plik - określa listę plików zawierających ciągi; każdy ciąg powinien być w osobnym wierszu w plikach; jeżeli jakiś ciąg pasuje do dowolnej części ścieżki absolutnej kopiowanego pliku, plik ten nie zostanie skopiowany; na przykład, określenie ciągu postaci \obj\ lub .obj spowoduje odpowiednio wykluczenie wszystkich plików w podkatalogu obj lub wszystkich plików z rozszerzeniem *.obj.
  • /T - generuje strukturę katalogów, ale nie kopiuje plików
robocopy folder_zrodlowy folder_docelowy /mir
tworzy lustrzaną (1:1) kopię drzewa katalogów (zauważ, że polecenie xcopy nie usuwa z katalogu docelowego plików, których nie ma w folderze źródłowym)
tree
rysuje w trybie tekstowym drzewo katalogów zakorzenione w bieżącym katalogu
rd /s /q katalog
usuwa całe drzewo katalogów nie pytając o nic
del /s /q katalog
to samo, ale del można użyć do usuwania pojedynczych plików; usunięcie pliku oznacza jedynie oznaczenie ich jako usunięte (pierwszy znak nazwy pliku jest zmieniany na znak o kodzie heksadecymalnym E5) i następne operacje zapisu mogą zniszczyć zawartość tak oznaczonego pliku
type notatka.txt | more
wyświetla zawartość pliku z podziałem na strony
find /n /i /v "0-700" polaczenia.txt
coś jak UNIXowy grep: przeszukuje plik wyświetlając wiersze i numery wierszy (\n) nie pasujące (\v) do podanej frazy, przy czym wielkość liter we wzorcu nie ma znaczenia (opcja\i); opcja \c wyświetliłaby wyłącznie liczbę wierszy zawierający szukany ciąg
findstr
potężniejszy braciszek find'a; można wyszukiwać wyrażenia regularne (/r), szukać rekurencyjnie (/s) we wskazanych katalogach (/D)
sort /+3 /r spis.txt
sortuje plik począwszy od 4-go znaku w każdym wierszu i odwraca kolejność przy wypisywaniu posortowanych wierszy na stdout
dir /os /q /tc
listing katalogu z plikami posortowanymi według wielkości; opcja /q powoduje wyświetlanie właściciela każdego pliku, a /tc daty utworzenia (a nie ostatniej modyfikacji)
ftype txtfile=C
\mojprogram.exe : powoduje że domyślnie wszystkie pliki tekstowe będą otwierane wskazanym programem, a nie Notepadem
assoc .txt
pokazuje typ pliku skojarzonego z rozszerzeniem *.txt
attrib -R katalog /S
usuwa atrybut "tylko do odczytu" ze wszystkich plików drzewa katalogów o korzeniu w wyznaczonym katalogu
icacl plik
wyświetla uprawnienia do wskazanego pliku (lista kontroli dostępu ACL)
copy a.txt+b.txt c.txt
plik c.txt zawiera połączoną zawartość kopii plików a.txt i b.txt
ren *.htm *.html
zmiana nazwy wszystkich plików w katalogu bieżącym z *.htm na *.html
subst f
\\sekwoja\home : mapowanie katalogu na nową literę dysku
mountvol /n
uniemożliwia automatyczne montowanie urządzeń (np. gwizdka); aby je przywrócić użyj opcji/e
diskpart.exe
zarządzanie dyskami (manipulacja partycjami i woluminami (np. tworzenie RAID-5), formatowanie itp.) - otwiera własny wiersz poleceń z komendami np.
list disk
wyświetla listę dysków
select disk 2
kolejne operacje będą wykonywane na dysku nr 2
help
lista dostępnych poleceń
select help
opis polecenia select
convert.exe F
/FS:NTFS : konwersja FAT32 do NTFS (nie ma narzędzia do konwersji odwrotnej!)
defrag.exe
analiza i defragmentacja dysków
ChkDsk.exe
sprawdzanie integralności systemu plików
mklink /d fotki \\serwer\fotki
tworzy łącze symboliczne Fotki w bieżącym folderze, lecz folder docelowy leży na dysku sieciowym
Cipher.exe
szyfrowanie plików (EFS)
cipher.exe /E tajny.doc
szyfrowanie pliku
cipher.exe /C tajny.doc
informacje o szyfrowaniu (rodzaj algorytmu, długość, klucza, kto ma dostęp itp.)
cipher.exe /D tajny.doc
deszyfracja
cipher.exe /D /H /I /S
C:\: deszyfracja wszystkich plików partycji C: z uwzględnieniem podkatalogów, a także plików ukrytych i systemowych
Compact.exe
kompresja katalogów i plików (w sposób przezroczysty dla użytkownika)
Compact /S /C MojKatalog
kompresja drzewa katalogów
Compact /S /U MojKatalog
dekompresja drzewa katalogów
Expand.exe
dekompresja katalogów i plików spakowanych compact'em (można tym również wyodrębniać pliki z archiwów *.cab)
SFC.exe
skanuje integralność wszystkich chronionych plików systemowych i opcjonalnie zastępuje niepoprawne wersje plików poprawnymi wersjami firmy Microsoft
sfc.exe /SCANNOW
skanuje system plików (może potrwać parę minut)

Procesy

qprocess
wyświetla listę procesów
tskill pid
zabija proces o podanym PIDzie
TaskList.exe
wyświetla listę procesów
tasklist /SVC
wyświetla usługi obsługiwane w każdym z procesów
sc.exe
zarządzanie usługami

Sieć

getmac
wyświeta MAC-adresy kart sieciowych
netstat -b
wyświetla informacje o połączeniach sieciowych - dla każdego nazwa programu który to połączenie obsługuje (wymaga uprawnień administratora)
netstat -e
wyświetla statystyki dotyczące połączenia sieciowego
netstat -a
wyświetla wszystkie połączenia sieciowe i porty nasłuchujące
NetSh.exe
zarządzanie siecią (np. definiowanie adresu IP, adresu serwera DNS itp.)
NetSh.exe interface set interface name=LAN admin=disabled
wyłącza kartę sieciową o nazwie LAN
NetSh.exe interface ip show config
informacje o połączeniach sieciowych
netsh firewall set service type=remoteadmin mode=enable
wykonane na maszynie lokalnej pozwala maszynom zdalnym na zdalną administrację lokalnym komputerem
IPConfig.exe
testowanie ustawienia sieci TCP/IP
IPConfig /all
informacje na temat sprzętu sieciowego i jego konfiguracji
IPConfig /release
zwalnia dzierżawę DHCP
IPConfig /renew
odnawia dzierżawę DHCP
IPConfig /displaydns
wyświetla zawartość cache DNS
IPConfig /flushdns
czyści cache DNS
DJoin.exe
spinanie komputera z domeną ActiveDirectory
ARP.exe
obsługa tabeli translacji adresów IP do adresów fizycznych
arp -a
zawartość pamięci podręcznej protokołu ARP
Route.exe
administracja lokalną tablicą rutingu
route print -4
tablica rutingu dla IP w wersji 4
TraceRT.exe
badanie hostow na drodze do hosta (np. zeby ustalic gdzie zapora blokuje pakiety)

Informacje o systemie

SystemInfo
dane o systemie
TypePerf
pozwala monitorować (próbkować) różne aspekty systemu (pamięć, procesor, itp.) a wyniki zrzucać na ekran
GPResult /h x.html
zapisuje w pliku HTML aktualne zasady grupy; szczególną rolę odgrywa w nim dolna część zawierająca sekcje Ustawienia komputera i Ustawienia użytkownika
winsat disk -seq -write -drive c
mierzy prędkość zapisu danych na dysku C

Inne

schtasks /Create /SC ONSTART /TN moje_zadanie /TR C
\mojplik.bat : tworzy w harmonogramie zadań zadanie o nazwie "moje_zadanie", uruchamiane przy starcie systemu
driverquery /v
informacje o zainstalowanych sterownikach (opcja /v wyświetla więcej szczegółów)
eventcreate
służy do tworzenia wpisów w pliku dziennika
Reg
pozwala przeszukiwać rejestr, oraz modyfikować, eksportować, importować oraz porównywać klucze rejestru
Whoami /all
informacje o użytkowniku (grupy, uprawnienia, itp.)
SchTasks.exe
zarządzanie harmonogramem systemu
WEvtUtil.exe
dostęp do dziennika zdarzeń
wmic.exe
informacje o zasobach systemu (aplikacjach, usługach, itp.), w tym również systemu zdalnego
wmic.exe /OUTPUT
"F:\Programy.html" /NODE: "localhost" PRODUCT GET /FORMAT: "HForm": wypluwa do pliku HTML informacje o wszystkich zainstalowanych programach
wmic.exe /OUTPUT
"F:\BledneLogowanie.html" NTEVENT WHERE "EVENTTYPE=5 AND LOGFILE='SECURITY'" /FORMAT: "HTable": informacje dotyczące niepowodzenia logowania
Net.exe
zarządzanie kontami (net accounts), grupami (net localgroup), udziałami (net share), itp.
Net start/stop/pause/continue "Bufor wydruku"
zarządzanie usługami z wiersza polecen; net start wyswietla liste dzialajacych uslug
Net user
lista uzytkownikow
Net user piotrek
informacje o koncie
Net share
wyświetla udziały udostępniane przez lokalny komputer
Net config server /hidden
yes: (z uprawnieniami administratora) ukrywa zasoby komputera w sieci lokalnej
SchTasks.exe
harmonogram zadań

Zmienne środowiskowe

path
wyświetla zawartość zmiennej środowiskowej PATH

Ciekawsze zmienne środowiskowe

  • UserProfile: katalog domowy aktualnie zalogowanego użytkownika
  • SystemRoot: katalog Windowsów (np. C:\Windows)
  • CopyCmd: jeśli ustawimy wartość na "/Y", to zablokujemy wyświetlanie pytania o nadpisywanie plików w poleceniach XCOPY, COPY i MOVE
  • Username: nazwa aktualnie zalogowanego użytkownika
  • ComputerName: nazwa komputera
  • HomeDrive: napęd na którym znajdują się konta użytkowników
  • ProgramFiles: "C:\Program Files"
  • Temp: katalog plików tymczasowych
  • UserDomain : nazwa domeny z której pochodzi bieżący użytkownik
  • PathExt : lista rozszerzeń akceptowanych jako programy do wykonania

Brak komentarzy:

Prześlij komentarz