windows - .bat 文件将每个文件名的前 3 个字母更改为大写 - 仅限 Windows
问题描述
从文件名:1ab12345_def7890.txt
到1AB12345_def7890.txt
。请注意大写的 1AB。
我尝试了以下操作,但它将整个文件名重命名为大写,包括扩展名。
@echo off
setlocal enableDelayedExpansion
pushd c:\some_dir
for %%f in (*) do (
set "filename=%%~f"
for %%A in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set "filename=!filename:%%A=%%A!"
)
ren "%%f" "!filename!" >nul 2>&1
)
endlocal
有人可以帮我吗?
谢谢 !
解决方案
您只需要首先隔离文件名的前三个字符,执行替换,然后将其添加回字符串。
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
PushD "C:\some_dir" 2> NUL || GoTo :EOF
For %%G In (*) Do (Set "filename=%%~nG"
SetLocal EnableDelayedExpansion
Set "leading=!filename:~,3!"
For %%H In (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
) Do Set "leading=!leading:%%H=%%H!"
Ren "%%G" "!leading!!filename:~3!%%~xG" 1> NUL
EndLocal)
PopD
推荐阅读
- ansible - 在 ansible playbook 中使用通配符
- ubuntu-16.04 - make 命令故障转移 ubuntu 16.04 用于节俭服务器
- javascript - 如何摆脱 Javascript 中的 CORS 错误
- azure-ad-b2c - 尝试使用来自 GitHub 的自定义场景的版本错误
- ruby-on-rails - 逻辑陈述/谜题。如何仅使用会员卡选择价格而忽略其他价格?
- c++ - Qt 应用程序不响应鼠标和键盘事件
- java - 修改库 xml 文件中的 Bean 定义
- python - 如何将整数拆分为不同变量中几乎相等的数量?
- typescript - tsc 命令无法识别窗口命令
- javascript - 同时使用键盘事件进行滚动和 CSS 滚动捕捉时发生冲突