2014-02-10 73 views
5

我用Copy-Item cmdlet的複製的PNG和TXT文件數量龐大,而且可悲的是我發現了一個有趣的程序員決定使用「CON」爲文件名來回顧一下連接信息。使用「CON」爲文件名

鑑於「CON」是保留字,Copy-Item回報:

拷貝項目:無法處理路徑「XXX \ con.txt」因爲目標代表了一個保留設備名。

並給予這個名字不能被改變,它的每一次我需要複製的文件夾中使用, 有沒有一種方法來複制所有這些「con.cfg」和使用PowerShell「con.txt」文件?

我GOOGLE了,但我發現唯一的建議,如「不要用騙局!」或者「不要使用Powershell來複制這些文件」。

+0

哈哈,我甚至無法創建一個名爲'con.txt'的文件來複制您的問題,但我認爲超級用戶上的[這個答案](http://superuser.com/a/129260)可以幫助您 –

+0

使用linux boot cd複製文件。 – Tschallacka

回答

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" 
+0

的文件我無法使用像\\ servername \ c $ \ myPath這樣的遠程路徑工作,但它在本地工作......更好的是沒有任何東西! – Naigel

1

你可以嘗試使用通配符指他們:*on

例子:

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

正則表達式的例子:

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

我的問題是創建一個名稱爲 – Naigel