标题: [文本处理] BAT怎样批量复制文件并重命名? [打印本页]
作者: wodekao 时间: 2018-9-3 16:08 标题: BAT怎样批量复制文件并重命名?
本帖最后由 wodekao 于 2018-9-6 17:29 编辑
- @echo off & title
- cd /d %~dp0
- setlocal enabledelayedexpansion
-
- for /f "delims=" %%a in (1.txt) do (
- set "Est="
- for /f "delims=" %%b in ('dir /a-d/s/b "1\*%%~a*"') do (
- copy "%%~b" "2\*%%~a*"
- set Est=1
- )
- if not defined Est >>2.txt echo %%a
- )
- pause
复制代码
以上代码可以实现指定文件批量复制到指定文件夹之内,但是无法实现同一文件的二次复制(因为会被覆盖掉),求改进!
例如
1.txt 里面有
1.jpg
1.jpg
1.jpg
1.jpg
2.jpg
3.jpg
1\ 目录下有 1.jpg 2.jpg 3.jpg
求复制后
2\目录下有 1.jpg 1 (1).jpg 1 (2).jpg 1 (3).jpg 2.jpg 3.jpg
作者: Batcher 时间: 2018-9-3 16:15
参考:
http://bbs.bathome.net/thread-11423-1-1.html#pid72681
http://bbs.bathome.net/thread-9355-1-1.html#pid60783
作者: yhcfsr 时间: 2018-9-3 17:01
- @echo off&setlocal enabledelayedexpansion
-
- for /f "delims=" %%a in (1.txt) do (
- for /f "delims=" %%b in ('dir /a-d/s/b "1\*%%~a*"') do (
- if not defined %%a (
- set "%%a=%%a"
- set "_%%a="
- set "name=%%~nxb"
- ) else (
- set/a "_%%a+=1"
- set "name=%%~nb(!_%%a!)%%~xb"
- )
- copy "%%b" "2\!name!"
- )
- )
- pause
复制代码
作者: wodekao 时间: 2018-9-3 17:16
回复 3# yhcfsr
非常好的回答!!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |