酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

windos bat脚本 递归批量将文件名中的krdj改成dj,从当前脚本所在目录开始递归所有文件,执行完后挂起

以下是一个满足你需求的 Windows Batch 脚本: ```batch @echo off rem 获取当前脚本所在的目录 set "currentDir=%~dp0" rem 递归遍历当前目录及其子目录下的所有文件 for /r "%currentDir%" %%i in (*) do ( rem 获取文件名 set "filename=%%~nxi" rem 将文件名中的 krdj 替换为 dj setlocal enabledelayedexpansion set "newfilename=!filename:krdj=dj!" if not "!filename!"=="!newfilename!" ( rem 如果文件名发生了变化,则重命名文件 ren "%%i" "!newfilename!" ) endlocal ) rem 执行完后挂起,等待用户按任意键 pause ``` 代码解释: 1. `@echo off`:关闭命令行窗口中命令的显示,使输出更简洁。 2. `set "currentDir=%~dp0"`:获取当前脚本所在的目录,并将其存储在 `currentDir` 变量中。 3. `for /r "%currentDir%" %%i in (*) do`:递归遍历 `currentDir` 目录及其子目录下的所有文件。 4. `set "filename=%%~nxi"`:获取当前文件的完整文件名(包括扩展名)。 5. `setlocal enabledelayedexpansion`:启用延迟环境变量扩展,以便在 `for` 循环中正确处理变量。 6. `set "newfilename=!filename:krdj=dj!"`:将 `filename` 中的 `krdj` 替换为 `dj`,并将结果存储在 `newfilename` 变量中。 7. `if not "!filename!"=="!newfilename!"`:检查文件名是否发生了变化。 8. `ren "%%i" "!newfilename!"`:如果文件名发生了变化,则重命名文件。 9. `endlocal`:结束延迟环境变量扩展。 10. `pause`:执行完后挂起,等待用户按任意键。 额外需要注意的逻辑点: 1. 脚本执行前请确保备份重要文件,以防重命名操作出现意外。 2. 脚本会递归处理所有文件,包括隐藏文件和系统文件,可能会影响系统的正常运行,使用时请谨慎。 3. 如果文件名中包含特殊字符(如空格、引号等),可能会导致重命名失败,需要进行额外的处理。 [2025-07-15 15:29:33 | AI写代码神器 | 564点数解答]

相关提问