找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19266|回复: 3

[文件操作] 批处理如何移动指定文件夹内所有文件到指定目录并重命名?

[复制链接]
发表于 2010-3-29 15:47:19 | 显示全部楼层 |阅读模式
请问,如何移动指定文件夹内所有文件到指定目录,并重命名?
其实我已经实现了部分功能,但是有个问题就是特殊文件夹名和特殊文件名。
如果要移动的路径或文件名包含特殊字符,怎么移动?
比如,要移动 C:\aaa b!bb\h^e12 0~%l%!p!@. s321-文件.txt   到  C:\bbb\ 中然后重命名成a10001.txt
下面是我的基本功能的代码,在这基础上怎么修改,才能实现这些功能?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p aaa=请输入要移动的文件路径 :
  4. set /p bbb=请输入文件类型(后缀名:"如 jpg txt * ...") :
  5. set /p ttt=请输入目标路径 :
  6. set /p nnn=请输入重命名的最大文件个数(100 1000 ...) :
  7. set /p fff=请输入重命名的名称前字符,没有则不输("如:a ==> a***.***") :
  8. set /p FLG=确认执行移动?(Y/N)
  9. set num=%nnn%
  10. IF /I %FLG% EQU Y (
  11. @echo 处理中,请等待...
  12. for /r "%aaa%" %%a in ("*.%bbb%") do (
  13.         set /a num+=1
  14.         if "%bbb%"=="*" (
  15.                 move /-y "%%a" "%ttt%\%fff%!num!%%~xa"
  16.         ) else (
  17.                 move /-y "%%a" "%ttt%\%fff%!num!.%bbb%"
  18.         )
  19. )
  20. )
  21. @echo 移动完毕
  22. pause
复制代码
代码说明:输入要移动的文件夹路径(包括子文件夹中的内容)和文件类型,输入目标文件夹,输入重命名的文件规则(a10001  a10002....),执行后,会把所有文件移动,并按照名称前字符+数字的规则重命名。

以上的代码不能实现含有特俗字符的文件夹和文件的移动,请帮忙修改一下,谢谢了!

[ 本帖最后由 greatwjl 于 2010-3-29 15:48 编辑 ]
发表于 2010-3-30 02:27:00 | 显示全部楼层
^! 特殊符号在批处理的变量中无法引用.
发表于 2010-3-30 07:39:09 | 显示全部楼层
set/p x=输入重命名文件后缀
if not defined x  %0
:go
set/p go=将要取理的文件夹拖到本窗口
if not defind go  goto go
for /r %go% %%i in (*.%x%) do   if  exist %%~nxi (move /y "%%~dpni%time:~-2%%random:~-2%.%x%) else move /y "%%i"

[ 本帖最后由 x9tiancmd 于 2010-3-30 07:41 编辑 ]
发表于 2010-3-30 08:09:34 | 显示全部楼层
不仅特殊符号没法引用, 那个TXT怎么创建的不清楚,但是WINDOWS里打不开...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:05 , Processed in 0.018767 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表