加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 系统 > 正文

Windows – PowerShell复制项方法失败 – 文件名中的括号

发布时间:2021-01-30 23:46:42 所属栏目:系统 来源:网络整理
导读:我试图使用Power Shell(v.1)仅复制匹配模式的文件.文件命名约定是: Daily_Reviews[0001-0871].journalDaily_Reviews[1002-9887].journal[...] 当我运行它时,方法“Copy-Item”抱怨: 无法检索cmdlet的动态参数.指定的通配符模式无效:Daily_Reviews [0001

我试图使用Power Shell(v.1)仅复制匹配模式的文件.文件命名约定是:

Daily_Reviews[0001-0871].journal
Daily_Reviews[1002-9887].journal
[...]

当我运行它时,方法“Copy-Item”抱怨:

无法检索cmdlet的动态参数.指定的通配符模式无效:Daily_Reviews [0001-0871] .journal
??Copy-Item<<<< $sourcefile $destination 该错误是由文件名中的“[”和“]”引起的.当我删除左右括号时,它按预期工作.但看起来PowerShell 1没有-LiteralPath标志,那么是否有另一种方法可以让PowerShell 1中的Copy-Item工作,文件名包含括号?

$source = "C:UsersTom"
$destination ="C:UsersTomProcessed"

if(-not(Test-Path $destination)){mkdir $destination | out-null}


ForEach ($sourcefile In $(Get-ChildItem $source | Where-Object { $_.Name -match "Daily_Reviews[dddd-dddd].journal" }))
{

  Copy-Item $sourcefile $destination
 }

解决方法

好了,经过研究,我发现了一个解决方法:

$src = [Management.Automation.WildcardPattern]::Escape($sourcefile)
Copy-Item  $src $destination

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读