2017-02-10 7 views
0

Ich versuche, einen Dateinamen in einem Ordner zu analysieren und Teile des Dateinamens in Variablen zu speichern. Prüfen! Ich möchte dann eine der Variablen nehmen und prüfen, ob dieser Ordnername an einem anderen Ort existiert und ob er ihn nicht erzeugt. Wenn ich Write-Host verwende, ist der Ordnername ein gültiger Pfad, und der Ordnername existiert nicht, aber bei der Ausführung des Skripts wird der Ordner immer noch nicht erstellt.Powershell zum Erstellen eines Ordners, wenn nicht vorhanden

Was soll ich tun, um den Ordner zu erstellen, wenn er nicht existiert?

$fileDirectory = "C:\Test\" 
$ParentDir = "C:\Completed\" 
foreach ($file in Get-ChildItem $fileDirectory){ 

    $parts =$file.Name -split '\.' 

    $ManagerName = $parts[0].Trim() 
    $TwoDigitMonth = $parts[1].substring(0,3) 
    $TwoDigitYear = $parts[1].substring(3,3) 

    $FolderToCreate = Join-Path -Path $ParentDir -ChildPath $ManagerName 

    If(!(Test-Path -path "$FolderToCreate\")) 
    { 
     #if it does not create it 
     New-Item -ItemType -type Directory -Force -Path $FolderToCreate 
    } 

} 
+0

versuchen Sie dies: New-Item -ItemType Verzeichnis -Force -Path C: \ Path \ That \ Kann \ Or \ \ \ Kann nicht –

Antwort

5
if (!(Test-Path $FolderToCreate -PathType Container)) { 
    New-Item -ItemType Directory -Force -Path $FolderToCreate 
} 
+0

existieren, die perfekt funktioniert! Danke – BellHopByDayAmetuerCoderByNigh

0

andere Lösung:

if (![System.IO.Directory]::Exists($FolderToCreate)) 
{ 
    New-Item -ItemType Directory -Force -Path $FolderToCreate 
} 
1

dies versuchen: Der Schlüssel ist (-Force), überprüft es für jeden einzelnen Unterverzeichnis, wenn sie nicht existieren, wäre es einfach zu erstellen und gehe zum nächsten und wirf niemals einen Fehler.

Im folgenden Beispiel benötigen Sie 7 verschachtelte Unterverzeichnisse, mit einer einzigen Zeile können Sie jemanden erstellen, der nicht existiert.

ein weiterer Punkt, können Sie es so oft wie Zeit und es nie nie einen Fehler werfen zu laufen!

New-Item -ItemType Directory -Force -Path C:\Path\That\May\Or\May\Not\Exist 
+0

Während dieses Code-Snippet ist willkommen, und kann einige Hilfe bieten, wäre es [erheblich verbessert, wenn es eine Erklärung] (* meta.stackexchange.com/q/114762) von * wie * es die Frage behandelt. Ohne dies hat Ihre Antwort viel weniger pädagogischen Wert - denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, nicht nur die Person, die jetzt fragt! Bitte [bearbeiten] Sie Ihre Antwort, um eine Erläuterung hinzuzufügen und geben Sie an, welche Einschränkungen und Annahmen gelten. –

+0

Upvoting für die Notwendigkeit von Force für die Erstellung des gesamten Baumes. – GermanC

Verwandte Themen