copy-item文件名中包含奇怪字符的文件(即[])

时间:2013-09-25 08:36:46

标签: powershell powershell-v2.0 copy-item

我必须复制文件名如下

  $filename = "Sport.EL#15.csv.[]"

进入另一个文件夹。

如果我使用

  copy-item -force Sport.EL#15.csv.[] $dest_path 

它不起作用。

因为我这样做:

  foreach ($f in Get-ChildItem $pathfile | Where {!$_.PsIsContainer} | Where {$_.Name -match $filename}){....}

,错误是

  Bad argument to operator '-match': parsing "Sport.EL#15.csv.[]" - Unterminated [] set..

我认为问题是文件名中的[]。我该如何解决?

1 个答案:

答案 0 :(得分:3)

尝试使用:

copy-item -literalpath $filename $dest_path 

评论后编辑:

解决-match问题尝试:

 Where {$_.Name -match [regex]::escape($filename)}

-match获取regular expression值,您需要escape regex language中使用的每个特殊字符,以避免此类问题。