@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% 加上每行结尾添加逗号
时间: 2024-03-03 19:52:07 浏览: 121
可以使用以下修改后的代码,在每行结尾添加逗号:
```
@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` 变量替换为实际使用的文件路径。
相关问题
@echo off setlocal enabledelayedexpansion set "source_folder=C:\path\to\your\folder" for %%F in ("%source_folder%\*.csv") do ( set "filename=%%~nF" set "extension=%%~xF" for /f "tokens=1,2,4 delims=_" %%A in ("!filename!") do ( set "new_filename=%%A_%%B_%%C!extension!" ren "%%F" "!new_filename!" ) ) echo File name format conversion completed.循环子目录
如果你想要批量修改目录下的csv文件以及其子目录中的csv文件的文件名格式,你可以使用一个递归的批处理脚本。以下是一个修改后的脚本示例:
```batch
@echo off
setlocal enabledelayedexpansion
set "source_folder=C:\path\to\your\folder"
for /r "%source_folder%" %%F in (*.csv) do (
set "filename=%%~nF"
set "extension=%%~xF"
for /f "tokens=1,2,4 delims=_" %%A in ("!filename!") do (
set "new_filename=%%A_%%B_%%C!extension!"
ren "%%F" "!new_filename!"
)
)
echo File name format conversion completed.
```
这个脚本使用了 `/r` 参数来递归地遍历目录下的所有csv文件,包括子目录中的文件。其他部分与之前的脚本相似。
请确保将`source_folder`变量的值替换为你要修改的目录的路径。运行脚本后,输出窗口会显示"File name format conversion completed.",表示文件名格式转换完成。请在运行脚本之前备份你的文件,以防止意外情况。
@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%换成_%FILENA
ME%会更好呢?
将文件名前面的"new_"去掉,是为了保持文件名的一致性。因为在程序运行过程中,会新建一个同名的文件,只是文件名前面加了"new_",用来存储替换后的内容。如果替换后的内容与原文件一致,那么就可以直接覆盖原文件,否则就可以手动删除新文件。而如果将文件名改成"%FILENAME%",就会覆盖原文件,可能会导致数据丢失。因此,为了保险起见,建议将文件名前面的"new_"保留。
阅读全文