用Powershell解决长路径的问题

背景

我在进行Windows的配置文件备份的时候,用了以下脚本进行备份:

roobcopy %userprofile% D:\tmp\%username /COPY:DAY /R:0 /W:0

结果发现有两个目录出现了无限复制,导致文件路径长度过长,就卡这里了,此目录即Application Data,在Windows 7以上的系统中只是一个jump链接。

解决方案

直接删除是不可以了,有什么办法可以解决这个问题?想到了Powershell。写了一个函数,并重复调用(所谓的递归):

function Fix-LongPath {
    Rename-Item 'Application Data' -NewName '1'
    Set-Location '1'
    Fix-LongPath
}

写完之后调用此函数,即可修复长路径的问题。

P.S. Windows 10一周年版(Red Stone)中,已经允许长路径了,所以没有升级的朋友们,赶紧升级你的Windows吧。