Powershell如果不存在则创建文件夹

时间:2017-02-10 14:26:26

标签: powershell create-directory

我正在尝试解析文件夹中的文件名,并将部分文件名存储在变量中。校验!然后,我想获取其中一个变量并检查该文件夹名称是否存在于其他位置,以及是否不创建它。如果我使用Write-Host,则文件夹名称是有效路径,并且文件夹名称不存在,但在执行脚本时,仍未创建文件夹。

如果文件夹不存在,我该怎么办?

$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
    }

}

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

试试这个: 关键是(-Force),当它们不存在时,它检查每个子目录,它只是创建它并转到下一个子目录而不会抛出错误。

在下面的示例中,您需要7个嵌套的子目录,只需一行就可以创建任何不存在的子目录。

另一点,你可以重新运行它尽可能多的时间,它的设计永远不会抛出错误!

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

答案 2 :(得分:0)

其他解决方案:

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