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!