New-Item

Tworzy nowy element: plik, katalog lub klucz rejestru.

New-Item to cmdlet PowerShella, którym tworzysz nowe elementy w bieżącym dostawcy (provider). Najczęściej będzie to plik albo katalog na dysku, ale ten sam cmdlet potrafi też założyć klucz lub wpis w rejestrze, dowiązanie symboliczne czy zmienną środowiskową — wszystko zależy od tego, w jakiej „przestrzeni” (FileSystem, Registry, Env) akurat działasz. W praktyce 90% czasu używasz go zamiast linuksowego touch i mkdir naraz.

Składnia i najważniejsze opcje

Podstawowa forma wygląda tak: New-Item [-Path] <ścieżka> -ItemType [-Value ]

  • -Path — ścieżka, w której powstanie element (parametr pozycyjny, więc często podajesz go bez nazwy).
  • -Name — nazwa elementu osobno; przydatne, gdy -Path wskazuje sam katalog docelowy.
  • -ItemType — typ elementu: File, Directory, SymbolicLink, HardLink lub Junction.
  • -Value — początkowa zawartość pliku (dla rejestru: wartość wpisu).
  • -Force — nadpisuje istniejący element tylko do odczytu i tworzy brakujące katalogi pośrednie.
  • -WhatIf — pokazuje, co by się stało, bez faktycznego tworzenia (sucha próba).
  • -Confirm — prosi o potwierdzenie przed wykonaniem.

Przykłady użycia

  • New-Item -Path .\notatki.txt -ItemType File — tworzy pusty plik tekstowy w bieżącym katalogu.
  • New-Item -Path C:\Projekty\app\logs -ItemType Directory — zakłada nowy katalog (a z -Force także brakujące katalogi nadrzędne).
  • New-Item -Path .\config.json -ItemType File -Value '{}' — tworzy plik i od razu wpisuje do niego treść.
  • New-Item -ItemType SymbolicLink -Path C:\link -Target C:\dane — tworzy dowiązanie symboliczne wskazujące na inny katalog.
  • New-Item -Path .\dziennik.log -ItemType File -Force — tworzy plik, a jeśli już istnieje, czyści jego zawartość.

Częste błędy i pułapki

Najboleśniejsza pułapka: -Force na istniejącym pliku nadpisuje go pustą zawartością, a nie tylko „dotyka”. Jeśli chciałeś jedynie zaktualizować datę modyfikacji jak w touch, stracisz dane. Dla katalogu jest łagodniej — -Force nie kasuje istniejącego folderu, tylko zwraca ten, który już jest.

Druga rzecz: SymbolicLink na Windowsie zwykle wymaga uruchomienia konsoli jako administrator. Wyjątkiem jest Windows 10 (build 14972 lub nowszy) z włączonym trybem programisty — wtedy elewacja nie jest potrzebna. Bez tego dostaniesz odmowę dostępu.

Pamiętaj też, że bez -ItemType w systemie plików PowerShell domyślnie utworzy plik, więc jeśli chciałeś katalog, a zapomniałeś typu, zrobi się coś innego niż myślisz.

Powiązane komendy: Remove-Item, Set-Content, Get-Item, Copy-Item oraz w Linuksie odpowiedniki touch i mkdir.