@echo off setlocal enabledelayedexpansion set /p FILENAME="请输入要检查的文档文件名(包括扩展名):" for /f "tokens=* delims=" %%a in (%FILENAME%) do ( set LINE=%%a set LINE=!LINE:,=,! echo !LINE! >> new_%FILENAME% ) echo "中文逗号已经全部替换成英文逗号。" pause 为什么把new_%FILENAME%换成_%FILENAME%会乱码
时间: 2023-12-06 07:39:56 浏览: 13
在将文件名中的中文逗号替换为英文逗号后,你使用了一个新的文件名 `new_%FILENAME%` 来保存修改后的文档。如果你将文件名改为 `_%FILENAME%`,则会将修改后的文档保存在以下划线开头的文件名中,这可能会导致文件名出现乱码。出现乱码的原因可能是你的操作系统不支持在文件名中使用某些特殊字符,或者文件名被编码成了不受支持的字符集。建议你使用合适的文件名来保存修改后的文档,以避免出现乱码。
相关问题
@echo off setlocal enabledelayedexpansion set /p FILENAME="请输入要检查的文档文件名(包括扩展名):" for /f "tokens=* delims=" %%a in (%FILENAME%) do ( set LINE=%%a set LINE=!LINE:,=,! echo !LINE! >> new_%FILENAME% ) echo "中文逗号已经全部替换成英文逗号。" pause 把这段代码修改成替换原来的文件功能
@echo off
setlocal enabledelayedexpansion
set /p FILENAME="请输入要检查的文档文件名(包括扩展名):"
set OUTPUT_FILE=new_%FILENAME%
REM 删除已存在的输出文件
if exist %OUTPUT_FILE% del %OUTPUT_FILE%
for /f "tokens=* delims=" %%a in (%FILENAME%) do (
set LINE=%%a
set LINE=!LINE:,=,!
echo !LINE! >> %OUTPUT_FILE%
)
echo "中文逗号已经全部替换成英文逗号。"
pause
@echo off setlocal enabledelayedexpansion set input_file=test.txt set output_file=output.txt for /f "tokens=* delims=" %%a in ('type "%input_file%"') do ( set "line=%%a" set "line=!line:^ =!" if not "!line!"=="" ( if defined first_line ( set "output=!output!,!line!" ) else ( set "output=!line!" set "first_line=1" ) ) ) echo %output% > %output_file% 加上每行结尾添加逗号
可以使用以下修改后的代码,在每行结尾添加逗号:
```
@echo off
setlocal enabledelayedexpansion
set input_file=test.txt
set output_file=output.txt
for /f "tokens=* delims=" %%a in ('type "%input_file%"') do (
set "line=%%a"
set "line=!line:^
=!"
if not "!line!"=="" (
if defined first_line (
set "output=!output!,!line!,"
) else (
set "output=!line!,"
set "first_line=1"
)
)
)
echo %output:~0,-1% > %output_file%
```
在上面的代码中,`output` 变量中每行的结尾都添加了逗号。最后一行的逗号会被输出到输出文件中,因此使用 `%output:~0,-1%` 去除最后一个逗号,再将结果输出到输出文件中。
同样地,需要将 `input_file` 和 `output_file` 变量替换为实际使用的文件路径。
阅读全文