这个问题与这个问题有关:批处理:从文本文件末尾删除换行符?
所以我有一个包含一些信息的 txt 文件,我想删除最后一行 LFCR(换行符,回车)字符。
我需要使用变量和文件名作为参数 (%1) 指出源文件路径和目标文件路径。
批号
@echo off
set @srcfile="D:AgrCCAgrTestReport Results%1"
set @dstfile="D:AgrCCAgrTestData Export%1"
setlocal DisableDelayedExpansion
set "firstLineReady="
(
for /F "eol=$ delims=" %%a in (%@srcfile%) DO (
if defined firstLineReady (echo()
set "firstLineReady=1"
<nul set /p "=%%a"
)
) > %@dstfile%
但是,我没有删除 LFCR 字符,而是最终在目标文件夹中得到一个如下所示的文件:
目标文件内容
D:AgrCCAgrTestReport Resultsbg1baa.725
在 for 循环中,您需要 usebackq
选项,以便您仍然可以使用带引号的文件名来防止空格。
不要在变量内容中添加引号,而应使用扩展set syntax
。
set "var=content"`
你应该改变
set "@srcfile=D:AgrCCAgrTestReport Results%~1"
set "@dstfile=D:AgrCCAgrTestData Export%~1"
...
for /F "usebackq eol=$ delims=" %%a in ("%@srcfile%") DO (
...
) > "%@dstfile%"