Board logo

标题: [文本处理] 【已解决】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

  1. @echo off
  2. set "strPath=d:\文本\文本1"
  3. for /f "delims=" %%a in ('dir /a-d/b/s "%strPath%\*.exe"') do (
  4.     for /f "delims=" %%b in ("%%a\..") do move "%%~fa"  "%%~fb%%~xa"
  5. )
  6. pause
复制代码

作者: 思想之翼    时间: 2014-9-19 17:10

回复 2# yu2n

感谢您的帮助!

经过测试,代码是将 运行.exe 改名后移出文件夹。能否不移动,改名后依然还在原来的文件夹里?
作者: yu2n    时间: 2014-9-19 17:11

回复 3# 思想之翼
你的意思是将 move 改为 copy ?
  1. @echo off
  2. set "strPath=d:\文本\文本1"
  3. for /f "delims=" %%a in ('dir /a-d/b/s "%strPath%\*.exe"') do (
  4.     for /f "delims=" %%b in ("%%a\..") do copy "%%~fa"  "%%~fb%%~xa"
  5. )
  6. 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,我看错题了。
按题意如下:
  1. set "strPath=d:\文本\文本1"
  2. for /f "delims=" %%a in ('dir /a-d/b/s "%strPath%\*.exe"') do (
  3.   for /f "delims=" %%b in ("%%a\..") do rename "%%~fa"  "%%~nb%%~xa"
  4. )
  5. pause
复制代码

作者: CrLf    时间: 2014-9-20 01:05

本帖最后由 CrLf 于 2014-9-20 01:06 编辑

回复 6# yu2n


个人比较喜欢暴力一点:
  1. @echo off
  2. set "strPath=d:\文本\文本1"
  3. (for /f "delims=" %%a in ('dir /ad/b/s "%strPath%"') do (
  4.    ren "%%a\*.exe"  "%%~na.exe"
  5. )) 2>nul
  6. pause
复制代码
批处理到底还是慢,处理通配发生的错误比挨个判断哪个需要处理更快
作者: yu2n    时间: 2014-9-20 01:10

回复 7# CrLf
哦。多谢指点。
作者: tmplinshi    时间: 2014-9-20 01:36

本帖最后由 tmplinshi 于 2014-9-20 01:40 编辑
  1. 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