如何用批处理写一个检查文档标点符号不出现中文逗号,如果出现自动替换成英文并覆盖原先的文本保存
时间: 2023-12-06 10:39:42 浏览: 217
可以使用以下批处理脚本实现:
```
@echo off
setlocal enabledelayedexpansion
set "search=,"
set "replace=,"
for %%f in (*.txt) do (
set "file=%%~nf"
set "ext=%%~xf"
set "newfile=!file!_new!ext!"
echo Processing %%f...
for /f "tokens=* delims=" %%a in (%%f) do (
set "line=%%a"
set "line=!line:%search%=%replace%!"
echo !line!>>!newfile!
)
move /y "!newfile!" "%%f" >nul
echo Done processing %%f!
)
echo All files processed!
pause>nul
```
解释:
1. `setlocal enabledelayedexpansion`:开启延迟环境变量扩展,以便在循环中使用变量。
2. `set "search=,"` 和 `set "replace=,"`:定义要查找和替换的字符串。
3. `for %%f in (*.txt) do (...)`:循环处理所有后缀为 `.txt` 的文件。
4. `set "file=%%~nf"`、`set "ext=%%~xf"` 和 `set "newfile=!file!_new!ext!"`:提取文件名和后缀,并定义新文件名。
5. `for /f "tokens=* delims=" %%a in (%%f) do (...)`:循环处理文件的每一行。
6. `set "line=%%a"`:将当前行赋值给变量 `line`。
7. `set "line=!line:%search%=%replace%!"`:将中文逗号替换为英文逗号。
8. `echo !line!>>!newfile!`:将替换后的行写入新文件。
9. `move /y "!newfile!" "%%f" >nul`:覆盖原文件。
10. `echo Done processing %%f!`:输出处理完成的文件名。
11. `pause>nul`:暂停脚本以便查看输出。
阅读全文