批处理 找出所有非系统分区内后缀为exe的文件,并重命名为EXE_?

包括隐藏文件夹及路径带有空格、下划线的文件夹内,反正只要是分区里,不管哪个目录和子目录,只要有EXE文件,就重命名为EXE_,谢谢!

以下是一个可以实现该功能的Windows批处理脚本:
```
@echo off
setlocal EnableDelayedExpansion
rem 遍历非系统分区,查找后缀为exe的文件
for /f "skip=1 tokens=1-3" %%a in ('wmic logicaldisk where "drivetype!=5 and not deviceid like '%:%'" get deviceid^,size^,freespace ^| findstr /r "[A-Za-z]\:"') do (
set "drive=%%a"
pushd "!drive!\"
for /r %%i in (*.exe) do (
echo 重命名 %%i 为 %%~ni_EXE%%~xi
ren "%%i" "%%~ni_EXE%%~xi"
)
popd
)
```
该脚本会遍历所有非系统分区(排除光驱等非磁盘设备),查找后缀为exe的文件,并将其重命名为“文件名_EXE.exe”的形式。具体说明如下:
1. `EnableDelayedExpansion`:启用延迟变量,以便在循环中使用变量。
2. `for /f` 循环:通过WMIC命令获取所有非系统分区的设备号,并将其存储在`%%a`中。
3. `pushd !drive!\`:进入当前分区的根目录。
4. `for /r` 循环:遍历该分区及其子目录下的所有exe文件。
5. `ren` 命令:对于每个找到的exe文件,使用ren命令将其重命名为`文件名_EXE.exe`的形式。
6. `popd`:返回上一级目录。
请注意,在使用该脚本前,请务必备份重要文件,以免发生错误。追问

双击后,显示:
Node - 202322
ERROR:
Description = Invalid query
文件名、目录名或卷标语法不正确。
紧接着开始更名
每个分区需要手工输入分区后,才会对输入的分区进行更名,
还有对已有的Exe_文件,能否跳过
重命名也不对,更名后AndroidInterface_EXE.exe
而我要的是AndroidInterface.exe_

温馨提示:答案为网友推荐,仅供参考
相似回答