[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】多个文件夹内的文本批量改名

本帖最后由 思想之翼 于 2015-11-12 00:27 编辑
  1. @echo off&setlocal EnableDelayedExpansion
  2. set a=10000
  3. for /f "delims=" %%i in ('dir /b *.txt') do (
  4. if not "%%~ni"=="%~n0" (
  5. if !a! LSS 10 (ren "%%i" "!a!.txt") else ren "%%i" "!a:~-4!.txt"
  6. set/a a+=1
  7. )
  8. )
复制代码
  1. @echo off&setlocal EnableDelayedExpansion
  2. for /l %%x in (1001,1,1002) do (
  3. set y=%%x
  4. set a=10000
  5. pushd "d:\数据\改名\!y:~1!\"
  6. for /f "delims=" %%i in ('dir /b *.txt') do (
  7. if not "%%~ni"=="%~n0" (
  8. if !a! LSS 10 (ren "%%i" "!a!.txt") else ren "%%i" "!a:~-4!.txt"
  9. set/a a+=1
  10. )
  11. )
  12. )
复制代码
解决了。

回复 6# 思想之翼
这个不包含子文件夹,包含数字序列就错了
set/a number=10000
for /f "delims=" %%i in ('dir/a-d/b/l/on "d:\数据\差\*.txt"') do (
echo,"d:\数据\差\%%~nxi" "!number:~-4!%%~xi"
set/a number+=1
)
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

本帖最后由 /zhqsystem/zhq 于 2015-11-11 23:17 编辑

回复 4# 思想之翼


    'dir/a-d/b/l/on "%~dp0\测试\*.txt"'这句直接到路径将 %~dp0\测试\ 下边的也要改 替换实际路径文件夹目录,set/a number=10000000
这个数值偏大可以改小点保证要截取的字符多一位[改最后的数值计算时会默认在最后的数值计算],只是取值了后边的后四位字符
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set/a number=10000000
  4. for /f "delims=" %%i in ('dir/a-d/b/l/on "%~dp0\测试\*.txt"') do (
  5. echo,"%~dp0\测试\%%~nxi" "!number:~-4!%%~xi"
  6. set/a number+=1
  7. )
  8. pause
复制代码
1

评分人数

这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

【已解决】BAT或VBS:多个文件夹内的文本批量改名

本帖最后由 思想之翼 于 2015-11-12 00:10 编辑

D:/数据/内有命名为001-210的子文件夹,每个子文件夹内有命名为00001-10000的txt文本
现在欲将所有子文件夹内的文本批量改名,改名规则是:
00001改为0000
00002改为0001
......
10000改为9999
BAT VBS均可。恳望得到帮助。

TOP

返回列表