powershell - 我应该在目录字符串中使用/还是\?

标签 powershell

我有这个脚本:

$appArray | foreach {
    $o = $_;
    Get-ChildItem .\app\$o\partials -Recurse | 
        ForEach-Object {
            $i = $_;
            Write-Host "app/$o/partials/$i";
            Write-S3Object `
                -BucketName "staging" `
                -Key  "app/$o/partials/$i" `
                -File "app/$o/partials/$i" `
                -HeaderCollection @{"Cache-Control" = "public,max-age=3600"}
        }
}

该脚本位于app目录下面的目录中,因此我想在执行Get-ChildItem时向上移动一个目录,而我希望“app / ...”从上一个目录开始。

我应该使用/还是\,如何为该命令上一个目录?

最佳答案

我使用/。但是要获取父目录,您应该考虑使用GetParent:

[System.IO.Directory]::GetParent('YOUR_PATH')

Split-Path cmdlet:
Get-Item 'YOUR_PATH' | Split-Path -parent

或访问属性:
 (Get-Item 'YOUR_PATH').parent.fullname

这是您采用的代码。注意:我还使用Join-Path cmdlet合并路径并在第一行中确定脚本目录(否则,脚本仅在当前位置为脚本目录时才起作用):
$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
$scriptParentPath = $scriptPath | Split-Path -Parent

$appArray | foreach {
    $o = $_;
    $currentPath = Join-Path (Join-Path $scriptParentPath $o) 'partials'
    Get-ChildItem $currentPath -Recurse | 
        ForEach-Object {
            ...
        }
}

关于powershell - 我应该在目录字符串中使用/还是\?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36592453/

相关文章:

Powershell:检查计算机是否已注销

c# - .NET 枚举类型实际上是可变值类型吗?

xml - Powershell 和 XML : How to count specific elements for each node

powershell - 如何检查密码复杂性?

powershell 更新帮助失败

powershell - 需要用于仅包含 Style.CSS 的特定文件夹的 ZIP 提取的 Powershell 脚本?

powershell - Powershell脚本无法将ForEach-Object识别为有效的cmdlet

powershell - 流水线变量增量

Powershell:计划任务在后台而不是前台运行脚本

powershell - 导入模块组装错误