Piszę skrypt PowerShell, aby utworzyć kilka katalogów, jeśli nie istnieją.
System plików wygląda podobnie do tego
D:\
D:\TopDirec\SubDirec\Project1\Revision1\Reports\
D:\TopDirec\SubDirec\Project2\Revision1\
D:\TopDirec\SubDirec\Project3\Revision1\
- Każdy folder projektu ma wiele wersji.
- Każdy folder wersji potrzebuje folderu raportów.
- Niektóre foldery „wersji” zawierają już folder Raporty; jednak większość nie.
Muszę napisać skrypt uruchamiany codziennie, aby utworzyć te foldery dla każdego katalogu.
Jestem w stanie napisać skrypt, aby utworzyć folder, ale utworzenie kilku folderów jest problematyczne.
Odpowiedzi:
Wypróbuj
-Force
parametr:Możesz użyć
Test-Path -PathType Container
do sprawdzenia w pierwszej kolejności.Aby uzyskać więcej informacji, zobacz artykuł pomocy MSDN dotyczący nowego elementu .
źródło
Test-Path
sprawdza, czy ścieżka istnieje. Kiedy tego nie zrobi, utworzy nowy katalog.źródło
test-path
).Poniższy fragment kodu pomaga utworzyć pełną ścieżkę.
Powyższa funkcja podzieli ścieżkę, którą przekazałeś do funkcji i sprawdzi każdy folder, czy istnieje, czy nie. Jeśli nie istnieje, utworzy odpowiedni folder do momentu utworzenia folderu docelowego / końcowego.
Aby wywołać funkcję, użyj poniższej instrukcji:
źródło
Miałem dokładnie ten sam problem. Możesz użyć czegoś takiego:
źródło
Po określeniu
-Force
flagi PowerShell nie będzie narzekał, jeśli folder już istnieje.Jednowarstwowy:
BTW, aby zaplanować zadanie, sprawdź ten link: Planowanie zadań w tle .
źródło
Posługiwać się:
Pierwszy wiersz tworzy zmienną o nazwie
$path
i przypisuje jej wartość ciągu „C: \ temp \”Druga linia jest
If
oświadczenie, które opiera się na Test-Path cmdlet, aby sprawdzić, czy zmienna$path
ma nie istnieć. Nie istnieje kwalifikuje się za pomocą!
symbolu.Trzeci wiersz: jeśli ścieżka zapisana w powyższym ciągu nie zostanie znaleziona, zostanie uruchomiony kod między nawiasami klamrowymi.
md
to krótka wersja pisania:New-Item -ItemType Directory -Path $path
Uwaga: Nie testowałem przy użyciu
-Force
parametru z poniższym, aby sprawdzić, czy nie ma niepożądanego zachowania, jeśli ścieżka już istnieje.źródło
md "C:\first\second\third
tworzących je wszystkie.Istnieją trzy sposoby tworzenia katalogu za pomocą programu PowerShell:
źródło
Z twojej sytuacji wydaje się, że musisz utworzyć folder „Wersja nr” raz dziennie z folderem „Raporty”. W takim przypadku wystarczy wiedzieć, jaki jest następny numer wersji. Napisz funkcję, która otrzyma kolejny numer wersji, Get-NextRevisionNumber. Lub możesz zrobić coś takiego:
Instalacja PowerShell 3.0 .
źródło
Chciałem mieć możliwość łatwego umożliwienia użytkownikom utworzenia domyślnego profilu dla programu PowerShell w celu zastąpienia niektórych ustawień, i skończyłem z następującą linią pojedynczą (wiele instrukcji tak, ale można je wkleić do programu PowerShell i wykonać jednocześnie, co było głównym celem ):
Aby zapewnić czytelność, oto jak zrobiłbym to w pliku .ps1:
źródło
Oto prosty, który dla mnie zadziałał. Sprawdza, czy ścieżka istnieje, a jeśli nie, utworzy nie tylko ścieżkę katalogu głównego, ale także wszystkie podkatalogi:
źródło