标题: [文本处理] 求助bat脚本把多个文件夹的内容合并,重复名文件不能覆盖 [打印本页]
作者: wangweizhong 时间: 2022-10-13 12:24 标题: 求助bat脚本把多个文件夹的内容合并,重复名文件不能覆盖
求助bat脚本把多个文件夹的内容合并,重复名文件不能覆盖,如下:
文件夹 34500383201119_Equip 下有以下文件
2022101312.log
2022101311.log
2022101310.log
2022101309.log
文件夹 75028743201049_Equip 下有以下文件
2022101312.log
2022101311.log
2022101310.log
2022101309.log
合并后的文件夹保存所有.log文件,不能覆盖。
我找了个脚本可以合并,但是同名文件会覆盖- @echo on
- for /f "delims=" %%p in ('dir /b/ad') do move %%p\*.* D:\all\
- pause
复制代码
求助,感谢!
作者: Batcher 时间: 2022-10-13 14:35
回复 1# wangweizhong - @echo off
- cd /d "%~dp0"
- set "NewFolder=D:\all"
- for /f "delims=" %%i in ('dir /b /ad') do (
- for /f "delims=" %%j in ('dir /b /a-d "%%i"') do (
- if not exist "%NewFolder%\%%j" (
- move "%%i\%%j" "%NewFolder%"
- )
- )
- )
复制代码
作者: wangweizhong 时间: 2022-10-13 17:07
可能是我没说明白。
文件夹 34500383201119_Equip 下有以下文件
2022101312.log
2022101311.log
2022101310.log
2022101309.log
文件夹 75028743201049_Equip 下有以下文件
2022101312.log
2022101311.log
2022101310.log
2022101309.log
2022101308.log
2022101307.log
合并后的新文件夹名称到D:\all\,保存所有.log文件,不能覆盖。
需要合并后的结果为
2022101312.log
2022101311.log
2022101310.log
2022101309.log
2022101312.log
2022101311.log
2022101310.log
2022101309.log
2022101308.log
2022101307.log
作者: Batcher 时间: 2022-10-13 17:41
回复 3# wangweizhong
Windows系统不允许一个文件夹下出现两个或两个以上重复的文件名
作者: holley 时间: 2022-10-14 18:03
本帖最后由 holley 于 2022-10-14 18:23 编辑
回复 1# wangweizhong
曲线救国?- @echo off
- md new
- for /r "." %%a in (*.log) do (
- echo %%~na
- type %%a >> %%~na-new.log
- )
- move "*-new.log" "new"
- setlocal enabledelayedexpansion
- set "str=-new"
- cd /d new
- for /f "delims=" %%i in ('dir /b .') do (
- set "var=%%i" & ren "%%i" "!var:%str%=!")
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |