标题: [文件操作] 批处理怎样移动文件,遇到重命名自动加序号 [打印本页]
作者: rosande 时间: 2021-2-20 14:11 标题: 批处理怎样移动文件,遇到重命名自动加序号
请问下,我需要移动C:\1文件夹及子文件夹中的所有.doc文件和.ppt文件到E:\2文件夹,只移动文件,不用保持目录结构,如果遇到文件名重复,文件名后自动加类似(1)序号。
望牛人动动你的发财手告诉我下bat代码,谢啦。
作者: qixiaobin0715 时间: 2021-2-20 15:39
自己以前处理文件写的代码,与你的需求还是有较大的差异,修改后未经验证。运行代码如果没问题,以后使用时可将所有copy改为move就行了。- @echo off
- setlocal enabledelayedexpansion
- for /r "c:\1" %%a in ("*.doc") do (
- if not exist "E:\2\%%~nxa" (copy "%%a" "E:\2\") else (
- if not exist "E:\2\%%~na (2)%%~xa" (copy "%%a" "E:\2\%%~na (2)%%~xa") else (
- set n=2
- for /f "delims=" %%b in ('dir /b /a-d E:\2\*.doc^|findstr /r /be /c:"%%~na ([0-9][0-9]*)%%~xa"') do (
- set "str=%%~nb"
- set "m=!str:%%~na (=!"
- set "m=!m:)=!"
- if !m! gtr !n! set /a n=m
- )
- set /a n+=1
- copy "%%a" "E:\2\%%~na (!n!)%%~xa"
- )
- )
- )
- pause
复制代码
作者: rosande 时间: 2021-2-20 17:26
本帖最后由 rosande 于 2021-2-20 17:42 编辑
回复 2# qixiaobin0715
多谢出手相助
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |