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

[文件操作] 批处理如何修改文件名中特定字符的位置?

如题,例如文件名为“变量1 - 变量2.变量3”,如何能将它重命名为“变量2 - 变量1.变量3”呢,

注意1:“-”前后都有空格。
注意2:变量1、变量2、变量3都是由使用者运行批处理时输入的变量(如果变量1、变量2是空变量则将其设置为“*”,变量3不能输入空变量)。

  1. @echo off
  2. for /l %%a in (1 1 3) do set /p v%%a=变量%%a:
  3. if "%v1%"=="" set "v1=*"
  4. if "%v2%"=="" set "v2=*"
  5. if "%v3%"=="" set "v3=txt"
  6. for /f "delims=" %%i in ('dir/a-d/b "%v1% - %v2%.%v3%"') do (
  7.   for /f "tokens=1,2 delims=-" %%a in ("%%~ni") do (
  8.     set "a=%%a"
  9.     set "b=%%b"
  10.     setlocal enabledelayedexpansion
  11.     set "a=!a:~,-1!"
  12.     set "b=!b:~1!"
  13.     ren "!a! - !b!.%v3%" "!b! - !a!.%v3%" 2>nul
  14.     endlocal
  15.   )
  16. )
  17. pause
复制代码
如果文件名中包含多个"(空格)-(空格)"字符就不能修改了

TOP

返回列表