Search code examples
powershellreserved-words

using "CON" as filename


I was copying a huge number of png and txt files using Copy-Item cmdlet, and sadly I discovered that a funny programmer decided to use "CON" as file name to recap connection information.

Given that "con" is a reserved word and Copy-Item returns:

Copy-Item : Cannot process path 'xxx\con.txt' because the target represents a reserved device name.

and given that this name can't be changed and it's used in every folder I need to copy, Is there a way to copy all these "con.cfg" and "con.txt" files using Powershell?

I googled but I found only advice like "Don't use con!" or "Don't use Powershell to copy these files".


Solution

  • I haven't been able to find a solution for PowerShell yet, but you should be able to rename the files via command prompt using something like this:

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

    So for example:

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

    You could invoke the command prompt through PowerShell, of course:

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

    And obviously you could use PowerShell variables in there if you wanted

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