我该如何移动,而不是将数百个子目录中具有相同扩展名的所有文件复制到单个文件夹中,而不覆盖同名文件?
答案1
在 DOS 中执行:
FOR /R "C:\MoveFromDirectory" "%i" IN (*.mp3) DO MOVE "%i" "C:\Move2Directory"
将“MoveFromDirectory”更改为您正在搜索的目录。将 *.mp3 更改为您需要的任何文件扩展名。将 Move2Directory 更改为您想要将它们移动到的位置。
答案2
使用 Powershell 相当容易。此脚本抓取所有带有 .txt 扩展名的文件(来自当前目录)并对每个文件进行操作:如果目标文件名存在,它会将当前时间戳(精确到毫秒)附加到目标文件名。
$DestPath = "C:\NewFolder"
Get-ChildItem .\*.txt -recurse | foreach{
if(Test-Path "$DestPath\$($_.Name)" -eq true)
{
Copy-Item $_ -Destination "$DestPath\$($_.BaseName)-$($(get-date).ToString("yyyyMMddhhmmssss"))$($_.Extension)"
}
else
{
Copy-Item $_ -Destination $DestPath
}
}
答案3
通过在 Windows 资源管理器窗口右上角的搜索栏中输入 *.exe 之类的内容,搜索具有给定扩展名的所有文件。这将搜索当前目录及其子目录中的所有 .exe 文件。此时,所有这些文件都将列在窗口中。您现在可以选择它们,然后使用剪切/粘贴、重命名它们或任何其他可以在 Windows 资源管理器中正常执行的操作。