PowerShell Usuń plik, jeśli istnieje

PowerShell Usuń plik, jeśli istnieje

Jak każda inna powłoka, PowerShell jest potężnym językiem skorupy i scenariuszy opracowanym przez Microsoft. Pierwotnie zaprojektowany dla systemu Windows, PowerShell jest teraz dostępny dla wszystkich głównych platform. Począwszy od PowerShell 6, stała się bezpłatną i open source aplikacji.

Podobnie jak w przypadku dowolnych innych skrętów, możemy użyć PowerShell do automatyzacji od podstawowych do zaawansowanych rzeczy. W tym przewodniku sprawdź, jak używać PowerShell, aby usunąć plik, jeśli istnieje on w Linux.

Sprawdzanie, czy istnieje plik

Podobnie jak inne skorupy, PowerShell ma swój własny zestaw poleceń do wykonywania różnych zadań, zwanych CMDLETS. Aby przetestować określone stwierdzenie, w Bash użylibyśmy stwierdzenia testu BASH, które sprawdza, czy pewien argument jest prawdziwy, czy fałszywy. Oświadczenie testowe jest mechanizmem ogólnego przeznaczenia, który może obliczyć szeroką gamę możliwych poleceń.

Jednak w przypadku PowerShell istnieją określone CMDLET dla określonego zadania. Tutaj będziemy potrzebować ścieżki testowej, aby sprawdzić, czy dany plik istnieje w określonej lokalizacji.

Oto prosta demonstracja ścieżki testowej w akcji.

$ Test -path -path

Domyślnie ścieżka testowa sprawdzi, czy określony element istnieje w opisanej lokalizacji. Jeśli istnieje, zwraca wartość logiczną „prawda”. W przeciwnym razie zwraca „fałszywe”.

Usuwanie pliku w PowerShell

W Linux użylibyśmy polecenia RM do usunięcia pliku lub katalogu. W przypadku PowerShell używa cmdlet usuń-element.

Sprawdź dokumentację Microsoft na temat Usuń-elementu.

Na przykład, aby usunąć określony plik, uruchom następujące polecenie.

$ Remove-item

Aby usunąć katalog, potrzebujemy dodatkowej opcji „-recurse”.

$ Remove-item -Powrót

Usuwanie plików, jeśli istnieje

Teraz możemy połączyć obie metody razem i wykonać prosty skrypt, który usunie plik, jeśli istnieje w lokalizacji docelowej.

Najpierw przypisz zmienną, która pomieści wartość ścieżki pliku.

$ $ FileLocation = ""

Następnie użyj ścieżki testowej, aby sprawdzić, czy plik istnieje w lokalizacji.

$ TEST-Path $ fileleLocation

W zależności od wartości zwrotu ścieżki testowej możemy podjąć decyzję o usunięciu pliku docelowego. Możemy użyć instrukcji PowerShell IF-ELSE, aby określić działanie.

if (test-path $ filename = true)
Usuń nazwę pliku $
$

Dodajmy kilka dodatkowych wiadomości dla każdego możliwego wyniku.

if (test-path $ fileLocation)
Usuń-element $ fileLocation
Write-host „$ fileLocation jest usuwany”

w przeciwnym razie
Write-host „$ FileLocation nie istnieje”

Wdrożenie w skrypcie PowerShell

Czas umieścić wszystkie kody w odpowiedni skrypt PowerShell. Podobnie jak w skryptach BASH, możemy użyć skryptów PowerShell do automatyzacji różnych zadań za pomocą CMDLET i poleceń PowerShell. W Linux zarówno Skrypty PowerShell, jak i Bash mają podobieństwa strukturalne.

Najpierw potrzebujemy lokalizacji lokalizacji wykonywalnej PowerShell. To ważne, ponieważ będzie to część shebang. Uruchom następujące polecenie.

$ które PowerShell

Możemy teraz połączyć wszystkie te elementy w jednym skrypcie PowerShell. Skrypt PowerShell jest wyposażony w rozszerzenie pliku PS1.

$ nano delete -f-exist.PS1

Teraz wprowadź kod, który do tej pory opracowaliśmy.

$ FileLocation = ""
if (test-path $ fileLocation)
Usuń-element $ fileLocation
Write-host „$ fileLocation jest usuwany”

w przeciwnym razie
Write-host „$ FileLocation nie istnieje”

Zapisz plik i zamknij edytor. Zaznacz plik jako wykonywalny.

$ chmod +x delete -f-exist.PS1

Na koniec wykonaj skrypt.

$ ./Usuń-IF-Exist.PS1

Specjalne sytuacje

Usuwanie plików tylko do odczytu

CMDLET REMUET-ITEM nie może usunąć plików nieistniejących lub tylko odczytu. W takiej sytuacji możemy zmienić polecenie Usuń, aby usunąć, niezależnie od uprawnień do pliku. Flaga „-verbose” wydrukuje krok po kroku wyjście w celu łatwiejszego debugowania.

$ Remove -element -verbose -Force $ fileleLocation

Zaktualizujmy to w skrypcie.

$ FileLocation = ""
if (test-path $ fileLocation)
Usuń -elementowy -verbose -force $ fileleLocation
Write-host „$ fileLocation jest usuwany”

w przeciwnym razie
Write-host „$ FileLocation nie istnieje”

Końcowa myśl

Niniejszy przewodnik pokazuje, jak sprawdzić istnienie pliku i na podstawie wyniku, jak go usunąć za pomocą CMDLETU URESUNETEM CMDLET. Jeśli plik jest tylko odczytany lub odmowa, możemy użyć parametru „-Force”, aby go mocno usunąć. Wreszcie zaimplementowaliśmy cały skrypt.

Jest to bardzo prosty, ale skuteczny sposób usunięcia wybranego pliku/katalogu. Jednak, jak pokazano, ta ogólna metoda jest w stanie usunąć tylko jeden element. Możliwe jest uzyskanie listy plików z katalogu i użycie pętli, aby je stopniowo usunąć.

Szczęśliwy komputer!