批处理命令修改指定文件夹内的内容
技术问题
批处理命令修改指定文件夹内的内容
2025-03-06 09:02
批处理命令修改指定文件夹内的内容
@echo off setlocal enabledelayedexpansion REM 定义要查找和替换的字符串 set "search=%%SYSDRV%%" set "replace=E" REM 创建一个临时文件 set "tempFile=002_temp.bat" REM 读取002.bat内容并替换字符串 for /f "usebackq delims=" %%a in ("002.bat") do ( set "line=%%a" set "line=!line:%search%=%replace%!" echo !line!>>"%tempFile%" ) REM 删除原来的002.bat del "002.bat" REM 重命名临时文件为002.bat ren "%tempFile%" "002.bat" echo 替换完成。 pause endlocal |
以上是一个简单的 001.bat 脚本,它会自动将 002.bat 文件中的 %SYSDRV% 替换为 E:
请将这个脚本 使用ANSI编码 保存为 001.bat 并将其与 002.bat 放在同一个目录下,然后运行 001.bat。这个脚本会创建一个临时文件来保存修改后的内容,然后删除原来的 002.bat 文件并将临时文件重命名为 002.bat。这样就能实现自动替换 %SYSDRV% 为 E 的功能。
已知缺点 会把"!"替换掉 会把空行替换掉
方法二[推荐]使用powershell的命令行工具来进行替换:
Copy-Item -Path "002.bat" -Destination "002.bak"; (Get-Content -Path "002.bat") | ForEach-Object { $_ -replace '%SYSDRV%', 'E' } | Set-Content -Path "002.bat" |
标签:
- 批处理命令修改指定文件夹内的内容