使用“CON”作为文件名

时间:2014-02-10 12:29:36

标签: powershell reserved-words

我使用Copy-Item cmdlet复制了大量的png和txt文件,遗憾的是我发现一个有趣的程序员决定使用“CON”作为文件名来重新记录连接信息。

鉴于“con”是保留字,Copy-Item返回:

  

Copy-Item:无法处理路径'xxx \ con.txt',因为目标代表保留的设备名称。

并且鉴于此名称无法更改,并且它已在我需要复制的每个文件夹中使用, 有没有办法使用Powershell复制所有这些“con.cfg”和“con.txt”文件?

我用谷歌搜索,但我发现只有“不要使用骗局!”这样的建议。或“不要使用Powershell复制这些文件”。

2 个答案:

答案 0 :(得分:2)

我还没有找到PowerShell的解决方案,但您应该可以使用以下命令通过命令提示符重命名文件:

ren \\.\<absolute path> <new name>

例如:

ren \\.\C:\stuff\con.cfg stuff.cfg

您可以通过PowerShell调用命令提示符,当然:

cmd /c "ren \\.\C:\stuff\con.cfg stuff.cfg"

显然你可以在那里使用PowerShell变量

$dir = "C:\stuff"
cmd /c "ren \\.\$dir\con.cfg stuff.cfg"

答案 1 :(得分:1)

您可以尝试使用通配符引用它们:*on

示例:

ls | ? {$_.Name -match "*on.cfg"} | del

正则表达式示例:

ls | ? {$_.Name -match "^\won\.cfg"} | del