【发布时间】:2021-03-12 01:10:42
【问题描述】:
长期读者,第一次发帖 - 感谢您提供的任何帮助。
上下文:我正在整理一组属性文件夹。当前,父文件夹是项目,属性是子文件夹。如果一个属性受到多个项目的影响,它将在项目文件夹中复制。我的目标是展平结构,因此每个属性只有一个文件夹。 (例如,从 E:\TESTING\Project\Property*.* 复制到 E:\TESTING\Property*.*)(注意:我正在寻找使用 Windows 批处理脚本,因为我没有加载权限任何自定义软件)
问题:我需要将重复文件夹中的文件合并到新位置,并确保保留所有重复文件并使用后缀重命名。有数千个文件夹,所以我需要一个循环脚本来最大程度地减少手动操作。
尝试:我在论坛中找到了一个很棒的脚本(复制如下),它可以很好地处理重复文件重命名并从 *.txt 文件设置源。我不知道如何设置变量,所以我可以拥有自定义/循环目标文件夹。 (我很高兴开发一个 *.txt 文件,如果需要,它将显示每个源文件的相关目标文件夹)
希望这是一些我还不知道的简单事情。
@echo off
setlocal
set "source=E:\TESTING\source.txt"
set "target=E:\TESTING\Destination3\"
for /f "delims=" %%A in (%source%) do (
if not exist "%target%\%%~nxA" (
copy "%%~A" "%target%\%%~nxA"
) else (
call :index "%%~A" "%target%\%%~nxA" "1"
)
)
exit /b
:index source, target, count
setlocal
set /a "cnt=%~3"
if exist "%target%\%~n2(%cnt%)%~x2" (
call :index "%~1" "%~2" "%cnt%+1"
) else copy "%~1" "%target%\%~n2(%cnt%)%~x2"
pause
【问题讨论】:
标签: batch-file duplicates