标题: [文本处理] 【已解决】BAT:如何将文件夹内特定应用程序的名称,批量更改为上一级文件夹的名称 [打印本页]
作者: 思想之翼 时间: 2014-9-19 03:35 标题: 【已解决】BAT:如何将文件夹内特定应用程序的名称,批量更改为上一级文件夹的名称
本帖最后由 思想之翼 于 2014-9-20 20:16 编辑
d:\文本\文本1\001\运行.exe
d:\文本\文本1\002\运行.exe
...
d:\文本\文本1\210\运行.exe
如何将运行.exe的名称,批量更改为上一级文件夹的名称,即更改为:
d:\文本\文本1\001\001.exe
d:\文本\文本1\002\002.exe
...
d:\文本\文本1\210\210.exe
作者: yu2n 时间: 2014-9-19 11:09
- @echo off
- set "strPath=d:\文本\文本1"
- for /f "delims=" %%a in ('dir /a-d/b/s "%strPath%\*.exe"') do (
- for /f "delims=" %%b in ("%%a\..") do move "%%~fa" "%%~fb%%~xa"
- )
- pause
复制代码
作者: 思想之翼 时间: 2014-9-19 17:10
回复 2# yu2n
感谢您的帮助!
经过测试,代码是将 运行.exe 改名后移出文件夹。能否不移动,改名后依然还在原来的文件夹里?
作者: yu2n 时间: 2014-9-19 17:11
回复 3# 思想之翼
你的意思是将 move 改为 copy ?- @echo off
- set "strPath=d:\文本\文本1"
- for /f "delims=" %%a in ('dir /a-d/b/s "%strPath%\*.exe"') do (
- for /f "delims=" %%b in ("%%a\..") do copy "%%~fa" "%%~fb%%~xa"
- )
- pause
复制代码
作者: 思想之翼 时间: 2014-9-19 17:19
本帖最后由 思想之翼 于 2014-9-19 17:28 编辑
回复 4# yu2n
d:\文本\文本1\001\运行.exe
运行.exe在d:\文本\文本1\001\内
运行.exe改名为001.exe后,依然还在d:\文本\文本1\001\内,仅仅是将运行.exe改名为001.exe,不移动,也不拷贝。可以理解为用001.exe替换运行.exe
作者: yu2n 时间: 2014-9-19 18:02
回复 5# 思想之翼
... Sorry,我看错题了。
按题意如下:- set "strPath=d:\文本\文本1"
- for /f "delims=" %%a in ('dir /a-d/b/s "%strPath%\*.exe"') do (
- for /f "delims=" %%b in ("%%a\..") do rename "%%~fa" "%%~nb%%~xa"
- )
- pause
复制代码
作者: CrLf 时间: 2014-9-20 01:05
本帖最后由 CrLf 于 2014-9-20 01:06 编辑
回复 6# yu2n
个人比较喜欢暴力一点:- @echo off
- set "strPath=d:\文本\文本1"
- (for /f "delims=" %%a in ('dir /ad/b/s "%strPath%"') do (
- ren "%%a\*.exe" "%%~na.exe"
- )) 2>nul
- pause
复制代码
批处理到底还是慢,处理通配发生的错误比挨个判断哪个需要处理更快
作者: yu2n 时间: 2014-9-20 01:10
回复 7# CrLf
哦。多谢指点。
作者: tmplinshi 时间: 2014-9-20 01:36
本帖最后由 tmplinshi 于 2014-9-20 01:40 编辑
- dir /b /a:d /s "d:\文本\文本1\" | do ren "%a\运行.exe" "%~nxa.exe" 2>nul
复制代码
do.bat 在这里下载: http://bathome.net/thread-20477-1-10.html
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |