【问题标题】:powershell create directory from pathpowershell 从路径创建目录
【发布时间】:2019-06-08 11:36:21
【问题描述】:

路径是这样的,这些目录都不存在:

"D:\temp\test\abc.txt"  
"D:\temp2\test2\abc2.txt"
"D:\temp1\abc.txt"

我正在尝试拆分路径并仅创建目录。 我在下面尝试:

New-Item -Path "D:\temp\testing\abc.txt" -ItemType file  
Split-Path -Path "D:\temp\testing\abc.txt" -Resolve –IsAbsolute

【问题讨论】:

  • 您在这里的确切目标是什么?只创建目录还是文件?因为如果您想一次创建文件和所有目录树,只需将-Force 开关添加到您的New-Item 命令。 :)
  • 目标是只从路径创建目录
  • 那么你可以这样做:New-Item -Path (Split-Path D:\temp\test\abc.txt) -ItemType Directory -Force。使用不带参数的Split-Path 将返回父容器。与New-Item 的-Force 开关一起使用将使您获得所需的结果。 :)

标签: powershell


【解决方案1】:

[编辑 - 没有看到 Tuttu 的评论。 [*blush*] 我会把这个留在这里,但那个是第一个答案。]

我认为您正在寻找的是Split-Path cmdlet。 [grin] 类似这样的事情......

$PathList = @(
    'c:\temp\test1\abc.txt'  
    'c:\temp\test2\subtest2-1\abc2.txt'
    'c:\temp\test3\subtest3-1\subtest3-1-1\abc.txt'
    )

foreach ($PL_Item in $PathList)
    {
    $NewDir = Split-Path -Path $PL_Item -Parent
    if (-not (Test-Path -LiteralPath $NewDir))
        {
        $Null = New-Item -Path $NewDir -ItemType Directory -Force
        }
    }

创建了 3 个新目录,其中两个带有子目录。

请注意,这不考虑任何没有终止文件的输入路径...您将始终获得 父 路径。

【讨论】:

    猜你喜欢
    • 2010-11-25
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多