gpt4 book ai didi

powershell - 路径中有括号的奇怪行为

转载 作者:行者123 更新时间:2023-12-04 02:06:00 25 4
gpt4 key购买 nike

当路径中有方括号时,PowerShell 会出现奇怪的行为。例如,如果您在文件夹中:

C:\Some Movie [2011]

其中包含一个 mkv文件,然后键入:
ls *.mkv

什么都没有返回!我认为问题在于 PowerShell 尝试执行以下操作:
Get-ChildItem 'C:\Some Movie [2011]\*.mkv'

失败是因为 [2011]被视为通配符。我能够检索所有 mkv从这样的文件夹使用以下命令:
Get-ChildItem -LiteralPath 'C:\Some Movie [2011]' -Include *.mkv

但是当我尝试在 Rename-Item 命令中提供这些结果时,它失败了。
Get-ChildItem -LiteralPath 'C:\Some Movie [2011]' -Include *.mkv | Rename-Item -NewName "movie.mkv"

在没有括号的文件夹中执行相同的操作没有问题。有什么想法吗?

最佳答案

请参阅我对您的问题的评论(上)。如果如您所料,该文件夹中只有一个 mkv 文件,这将起作用。 Rename-Item不支持 LiterlPath(在 v3 中已修复),您可以求助于 .NET。我还建议(当您只过滤一个扩展名时)使用 -Filter 而不是 Include,它的执行速度更快。

Get-ChildItem -LiteralPath 'D:\Some Movie [2011]' -Filter *.mkv | Foreach-Object{
$NewName = Join-Path -Path $_.DirectoryName -ChildPath 'movie.mkv'
[System.IO.File]::Move($_.FullName,$NewName)
}

关于powershell - 路径中有括号的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8636447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com