Ce face Comenzi CMD și echivalentul PowerShell
Ca să fie ușor de început, PowerShell are pe Windows aliasuri cu numele comenzilor din CMD: dir, cd, copy, del, move, ren, type, cls, md funcționează. Ele pornesc însă cmdlet-urile PowerShell (Get-ChildItem, Set-Location, Copy-Item, Remove-Item…), deci primesc parametrii acestora, nu opțiunile CMD: dir /s nu merge, scrii dir -Recurse.
Programele externe din Windows (ipconfig, ping, tasklist, taskkill) rulează în PowerShell ca și în CMD, dar întorc text. Echivalentele PowerShell întorc obiecte pe care le poți filtra: Get-NetIPConfiguration (modulul NetTCPIP, doar Windows) pentru ipconfig, Test-Connection pentru ping, Get-Process și Stop-Process pentru tasklist și taskkill.
O capcană: în PowerShell, set este alias pentru Set-Variable, nu afișează variabilele de mediu. Variabilele de mediu sunt în $env:: citești $env:PATH, setezi $env:JUDET = 'Iași' (doar pentru sesiunea curentă) și le listezi cu Get-ChildItem Env:. Tabelul de mai jos arată corespondențele uzuale.
Parametri
| Parametru | Descriere |
|---|---|
dir |
Get-ChildItem (aliasuri dir, gci, ls pe Windows). dir /s devine Get-ChildItem -Recurse, dir /a devine -Force. |
cd |
Set-Location (aliasuri cd, chdir, sl). Directorul curent: Get-Location sau $PWD. |
copy |
Copy-Item (aliasuri copy, cp, cpi); pentru foldere adaugă -Recurse. |
del |
Remove-Item (aliasuri del, erase, rd, rm, ri, rmdir). Încearcă întâi cu -WhatIf. |
type |
Get-Content (aliasuri type, cat, gc). |
ipconfig |
Get-NetIPConfiguration (doar Windows); ipconfig merge în continuare. |
ping |
Test-Connection; cu -Quiet întoarce doar True sau False. |
tasklist |
Get-Process (aliasuri gps, ps pe Windows). |
taskkill |
Stop-Process (aliasuri spps, kill pe Windows). |
set |
Variabile de mediu: $env:NUME, Get-ChildItem Env:. Aliasul set înseamnă Set-Variable. |
Exemple
Exemplul 1: Ce se ascunde în spatele comenzilor cunoscute
Get-Alias primește mai multe nume și arată cmdlet-ul fiecăruia.
Get-Alias dir, cd, copy, del
Ieșire în terminal
CommandType Name Version Source
----------- ---- ------- ------
Alias dir -> Get-ChildItem
Alias cd -> Set-Location
Alias copy -> Copy-Item
Alias del -> Remove-Item
Exemplul 2: dir /s /b în stil PowerShell
Toate fișierele PDF din folder și subfoldere, doar cu numele (echivalentul lui dir /s /b *.pdf, dar fără calea completă).
Get-ChildItem C:\Proiecte\facturi -Recurse -Filter *.pdf | Select-Object -ExpandProperty Name
Ieșire în terminal
factura-ana.pdf
factura-mihai.pdf
raport-cluj.pdf
Exemplul 3: ping, set și taskkill
Verifici dacă un server răspunde, setezi o variabilă de mediu pentru sesiune și închizi toate procesele Notepad (Stop-Process nu afișează nimic).
Test-Connection exemplu.ro -Count 2 -Quiet
$env:JUDET = 'Iași'
$env:JUDET
Get-Process -Name notepad | Stop-Process
Ieșire în terminal
True
Iași
Greșeli frecvente
- Să folosești opțiunile CMD cu aliasurile:
dir /s,del /q,copy /ydau erori sau fac altceva. Folosește parametrii cmdlet-ului (-Recurse,-Force). - Să scrii
set PATHca în CMD: în PowerShell setezi o variabilă PowerShell numită PATH, nu variabila de mediu. Folosește$env:PATH. - Să crezi că
$env:NUME = ...salvează variabila permanent: se pierde la închiderea sesiunii. - Să compari ieșirea lui
ipconfigcu text și să tai linii:Get-NetIPConfigurationîți dă direct proprietăți caIPv4Address.
Comenzi înrudite
Get-Command: Găsește comenzile disponibile (cmdlet-uri, funcții, aliasuri, programe); Get-Alias arată ce comandă se ascunde în spatele unui alias.Get-ChildItem: Listează fișierele și folderele dintr-o locație, opțional recursiv, filtrate după nume sau tip (echivalentul lui dir și ls).Set-Location: Schimbă folderul curent (cd); Get-Location îl afișează, iar Push-Location și Pop-Location salvează și refac locațiile pe o stivă.Copy-Item: Copiază fișiere și foldere în altă locație, opțional cu tot conținutul subfolderelor și cu nume nou.Remove-Item: Șterge fișiere și foldere (și alte elemente, ca chei de registry); ștergerea este definitivă, nu în Coșul de reciclare.Get-Process: Afișează procesele care rulează pe computerul local, cu memoria folosită, timpul de procesor și ID-ul (PID) fiecăruia.Stop-Process: Oprește unul sau mai multe procese locale, după nume, după ID sau primite prin pipeline de la Get-Process.