76

如果它不存在,我正在尝试使用 PowerShell 创建一个文件夹,所以我这样做了:

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

这给了我该文件夹已经存在的错误,它确实存在,但它不应该尝试创建它。

我不确定这里有什么问题

新项目:具有指定名称 C:\Users\l\Documents\MatchedLog 的项目已经存在。在 C:\Users\l\Documents\Powershell\email.ps1:4 char:13 + New-Item <<<< -ItemType 目录 -Path $DOCDIR\MatchedLog + CategoryInfo : ResourceExists: (C:\Users\l. ...ents\MatchedLog:String) [New-Item], IOException + FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.NewItemCommand`

4

3 回答 3

119

我什至没有集中注意力,这是怎么做的

$DOCDIR = [Environment]::GetFolderPath("MyDocuments")
$TARGETDIR = '$DOCDIR\MatchedLog'
if(!(Test-Path -Path $TARGETDIR )){
    New-Item -ItemType directory -Path $TARGETDIR
}
于 2013-06-26T20:07:17.347 回答
59

使用 New-Item 您可以添加 Force 参数

New-Item -Force -ItemType directory -Path foo

或 ErrorAction 参数

New-Item -ErrorAction Ignore -ItemType directory -Path foo
于 2014-04-28T22:16:40.653 回答
21

使用运算符的替代语法-Not并取决于您对可读性的偏好:

if( -Not (Test-Path -Path $TARGETDIR ) )
{
    New-Item -ItemType directory -Path $TARGETDIR
}
于 2016-11-18T02:18:12.653 回答