Answers:
我试着通过写作:
findstr /v TRAILER %SFTP_INDIR%\Location*.txt > %IN_DIR%\loc.txt
这里
%SFTP_INDIR% = D:\Batch\Batch_FWK\SFTP\inbox.
输出文件loc.txt不包含最后一条记录
TRAILER|5|
现在,但是 它在输出文件中打印了这样的每条记录:D:\Batch\Batch_FWK\SFTP\inbox\Location.20150528060210.txt:1220|6963|TRUCK|5760|
findstr /v TRAILER filename >newfilename
按你的意愿工作 只要 从a中删除最后一行时 单 文件。
这是因为:
如果搜索到多个文件,结果将以前缀为前缀 找到文本的文件名。如果是,则不打印文件名 请求是明确的单个文件,或者搜索管道 输入或重定向输入。
要绕过此限制,您可以使用a for
命令处理多个单个文件并将结果输出到一个文件。
在批处理文件中尝试以下命令:
for /f "tokens=*" %%a in ('dir /b "%SFTP_INDIR%\Location*.txt"') do findstr /v TRAILER %%a >> %IN_DIR%\loc.txt
从命令行运行时替换 %%
同 %
。
资源 FINDSTR