我正在从数据文件中读取多行并将其附加到另一个文件。问题是在附加行末尾的输出文件中有一些额外的空间。必须根据我的要求修剪尾随空格,因为在原始数据文件中,行末尾没有空格。我尝试了所有可能的事情,但我仍然无法实现这一点。
@echo off
setlocal enabledelayedexpansion
FOR /F "delims=" %%c IN (C:\Users\184863\Desktop\mydata.txt) DO (
echo %%c>>temp_data.txt
)
endlocal
我尝试的选项:
echo %%c>>temp_data.txt
...获得1行空间
set lines=%%c
echo !lines!>>temp_data.txt
...获得1行空间
echo !lines:~0,-1!>>temp_data.txt
...修剪线的最后一个字符
set lines=!lines: =!
echo !lines!>>temp_data.txt
...行内的所有空格也被修剪(只需修剪线的末尾,原始数据文件中不存在)
答案 0 :(得分:2)
您应该删除echo %%c>>temp_data.txt
行(等等)上的终端空间。这是终端空间造成的典型混乱。
答案 1 :(得分:0)
这应该是必要的,包括需要对第100行进行评论。
一:不需要时使用延迟扩展 二:删除echo命令中的尾随空格。
@(
SETLOCAL
ECHO OFF
SET "_File=C:\Users\184863\Desktop\mydata.txt"
SET "_Count="
SET "_Comment=Your Special Comment "
)
FOR /F "tokens=* delims=" %%c IN (%_File%) DO (
SET /A "Count+=1">NUL
CALL ECHO.[%COUNT%] | FIND "[100]">NUL && (
ECHO:%_Comment%%~c
) || (
ECHO.%%c
)
)>>"%~dp0temp_data.txt"
REM Replace the original file with the commented File
MOVE /Y "%~dp0temp_data.txt" "%_File%"
(
ENDLOCAL
EXIT /B 0
)