Comenzi CMD și echivalentul PowerShell în PowerShell

Primii pași Windows PowerShell 1.0

Ce folosești în PowerShell în locul comenzilor CMD obișnuite (dir, cd, copy, del, ipconfig, ping, tasklist, taskkill, set).

Sintaxă
dir → Get-ChildItem    cd → Set-Location    copy → Copy-Item    del → Remove-Item
tasklist → Get-Process    taskkill → Stop-Process    set → $env:NUME / Get-ChildItem Env:

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 /y dau erori sau fac altceva. Folosește parametrii cmdlet-ului (-Recurse, -Force).
  • Să scrii set PATH ca î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 ipconfig cu text și să tai linii: Get-NetIPConfiguration îți dă direct proprietăți ca IPv4Address.

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.