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

[文件操作] BAT批处理如何重命名文件并转移到特定文件夹里

[复制链接]
发表于 2014-1-22 11:36:32 | 显示全部楼层 |阅读模式
我有许多文件,扩展名不定(有txt,pdf,doc,mp3,mp4,avi,等等),现在每个文件放在一个文件夹里,比方说文件夹的名字为A<空格>B,现在我想把这个文件夹里的文件改名为B.***(保留原扩展名),然后将这个文件放到A文件夹里,现在我要批量实现上面的步骤,请问如何用批处理实现?
发表于 2014-1-22 14:01:03 | 显示全部楼层
  1. @echo off
  2. set "folderSrc=A B"
  3. set "filePrefix=%folderSrc:* =%"
  4. for /f %%i in ("%folderSrc%") do (
  5.     set "folderDst=%%i"
  6. )
  7. if not exist %folderDst%\ (
  8.     md %folderDst%
  9. )
  10. for /r %%i in ("%folderSrc%\*") do (
  11.     ren "%%i" "%filePrefix%%%~xi"
  12.     move /y "%%~dpi%filePrefix%%%~xi" %folderDst%
  13. )
复制代码
 楼主| 发表于 2014-1-22 14:40:12 | 显示全部楼层
回复 2# DAIC

我说的A B只是一个比方,现在我不知道我的文件夹具体的名字,只知道形式是A B(我有很多这种形式的文件夹),如何才能完成呢?
而且如果我有A B,A C两个文件夹,如何让改名后的文件都放进A文件夹呢?
发表于 2014-1-22 15:35:01 | 显示全部楼层
  1. @echo off
  2. for /d %%i in (*) do (
  3.     for /f "tokens=1*" %%a in ("%%i") do (
  4.         md %%a 2>nul
  5.         copy "%%i\*.*" "%%a\%%b.*" >nul
  6.     )
  7.     rd "%%i" /q /s
  8. )
  9. pause
复制代码
发表于 2014-1-22 16:22:26 | 显示全部楼层
回复 3# ltlt2006
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%a in ("* *") do (
  4.     set "folderSrc=%%a"
  5.     set "filePrefix=!folderSrc:* =!"
  6.     for /f %%i in ("!folderSrc!") do (
  7.         set "folderDst=%%i"
  8.     )
  9.     if not exist !folderDst!\ (
  10.         md !folderDst!
  11.     )
  12.     for /r %%i in ("!folderSrc!\*") do (
  13.         ren "%%i" "!filePrefix!%%~xi"
  14.         move /y "%%~dpi!filePrefix!%%~xi" !folderDst!\
  15.     )
  16. )
复制代码
 楼主| 发表于 2014-1-23 17:11:45 | 显示全部楼层
回复 4# terse

谢谢 可以用, 就是如果格式不严格的话,会被误删。
 楼主| 发表于 2014-1-23 17:12:12 | 显示全部楼层
回复 5# DAIC


谢谢 可以用了
发表于 2014-1-23 23:55:11 | 显示全部楼层
回复 6# ltlt2006
讲遍历条件 改成 "* *" 这样呢?或是加个判断
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 01:07 , Processed in 0.036972 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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