标题: [文件操作] BAT批处理如何重命名文件并转移到特定文件夹里 [打印本页]
作者: ltlt2006 时间: 2014-1-22 11:36 标题: BAT批处理如何重命名文件并转移到特定文件夹里
我有许多文件,扩展名不定(有txt,pdf,doc,mp3,mp4,avi,等等),现在每个文件放在一个文件夹里,比方说文件夹的名字为A<空格>B,现在我想把这个文件夹里的文件改名为B.***(保留原扩展名),然后将这个文件放到A文件夹里,现在我要批量实现上面的步骤,请问如何用批处理实现?
作者: DAIC 时间: 2014-1-22 14:01
- @echo off
- set "folderSrc=A B"
- set "filePrefix=%folderSrc:* =%"
- for /f %%i in ("%folderSrc%") do (
- set "folderDst=%%i"
- )
- if not exist %folderDst%\ (
- md %folderDst%
- )
- for /r %%i in ("%folderSrc%\*") do (
- ren "%%i" "%filePrefix%%%~xi"
- move /y "%%~dpi%filePrefix%%%~xi" %folderDst%
- )
复制代码
作者: ltlt2006 时间: 2014-1-22 14:40
回复 2# DAIC
我说的A B只是一个比方,现在我不知道我的文件夹具体的名字,只知道形式是A B(我有很多这种形式的文件夹),如何才能完成呢?
而且如果我有A B,A C两个文件夹,如何让改名后的文件都放进A文件夹呢?
作者: terse 时间: 2014-1-22 15:35
- @echo off
- for /d %%i in (*) do (
- for /f "tokens=1*" %%a in ("%%i") do (
- md %%a 2>nul
- copy "%%i\*.*" "%%a\%%b.*" >nul
- )
- rd "%%i" /q /s
- )
- pause
复制代码
作者: DAIC 时间: 2014-1-22 16:22
回复 3# ltlt2006 - @echo off
- setlocal enabledelayedexpansion
- for /d %%a in ("* *") do (
- set "folderSrc=%%a"
- set "filePrefix=!folderSrc:* =!"
- for /f %%i in ("!folderSrc!") do (
- set "folderDst=%%i"
- )
- if not exist !folderDst!\ (
- md !folderDst!
- )
- for /r %%i in ("!folderSrc!\*") do (
- ren "%%i" "!filePrefix!%%~xi"
- move /y "%%~dpi!filePrefix!%%~xi" !folderDst!\
- )
- )
复制代码
作者: ltlt2006 时间: 2014-1-23 17:11
回复 4# terse
谢谢 可以用, 就是如果格式不严格的话,会被误删。
作者: ltlt2006 时间: 2014-1-23 17:12
回复 5# DAIC
谢谢 可以用了
作者: terse 时间: 2014-1-23 23:55
回复 6# ltlt2006
讲遍历条件 改成 "* *" 这样呢?或是加个判断
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |