it-swarm.com.de

Ordner erstellen, wenn er nicht existiert - "Element existiert bereits"

Ich versuche, einen Ordner mit PowerShell zu erstellen, falls er nicht vorhanden ist.

$DOCDIR = [Environment]::GetFolderPath("MyDocuments")
$TARGETDIR = "$DOCDIR\MatchedLog"
if(!(Test-Path -Path MatchedLog )){
   New-Item -ItemType directory -Path $DOCDIR\MatchedLog
}

Dies gibt mir den Fehler, dass der Ordner bereits vorhanden ist, was es tut, aber es sollte nicht versucht werden, ihn zu erstellen.

Ich bin mir nicht sicher, was hier los ist

Neues Element: Element mit dem angegebenen Namen C:\Users\l\Documents\MatchedLog ist bereits vorhanden. Unter C:\Users\l\Documents\Powershell\email.ps1: 4 char: 13 + New-Item <<<< -ItemType directory -Pfad $ DOCDIR\MatchedLog + CategoryInfo: ResourceExists: (C:\Users\l. ... ents\MatchedLog: String) [New-Item], IOException + FullyQualifiedErrorId: DirectoryExist, Microsoft.PowerShell.Commands.NewItemCommand`

67
laitha0

Ich habe mich nicht einmal konzentriert, hier ist, wie es geht

$DOCDIR = [Environment]::GetFolderPath("MyDocuments")
$TARGETDIR = '$DOCDIR\MatchedLog'
if(!(Test-Path -Path $TARGETDIR )){
    New-Item -ItemType directory -Path $TARGETDIR
}
112
laitha0

Mit New-Item können Sie den Force-Parameter hinzufügen

New-Item -Force -ItemType directory -Path foo

Oder der ErrorAction-Parameter

New-Item -ErrorAction Ignore -ItemType directory -Path foo
49
Steven Penny

Alternative Syntax mit dem -Not Operator und abhängig von Ihrer Präferenz für Lesbarkeit:

if( -Not (Test-Path -Path $TARGETDIR ) )
{
    New-Item -ItemType directory -Path $TARGETDIR
}
16