[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 qixiaobin0715 于 2022-10-26 16:21 编辑
  1. for /f "delims=" %%a in ('dir /s /b /a-d') do if not "%%a"==%0 ren "%%a" "@%%~nxa"
复制代码
仔细看了看楼主说明,好像是我理解错误?

TOP

假设所有文件名的字符数均不超过50个(用代码第6行的数字50表示,可根据情况自行修改),这样应当也行:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /s /b /a-d') do (
  4.     if not "%%i"==%0 (
  5.         set str=%%~ni
  6.         for /l %%a in (50,-1,1) do if "!str:~%%a!"=="" set n=-%%a
  7.         for /l %%b in (!n!,1,-1) do set str=!str:~,%%b!@!str:~%%b!
  8.         ren "%%i" "!str!%%~xi"
  9.     )
  10. )
  11. pause
复制代码
未经测试,纯属自己练习。代码保存为ANSI编码。

TOP

返回列表