批处理:使用文件路径从文本文件末尾删除换行符



这个问题与这个问题有关:批处理:从文本文件末尾删除换行符?

所以我有一个包含一些信息的 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%"

最新更新