Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理文件连接.txt文件时生成的带有特殊字符的额外行,如何删除它?_Batch File - Fatal编程技术网

Batch file 使用批处理文件连接.txt文件时生成的带有特殊字符的额外行,如何删除它?

Batch file 使用批处理文件连接.txt文件时生成的带有特殊字符的额外行,如何删除它?,batch-file,Batch File,我正在尝试创建一个批处理脚本,将文件夹中具有特定命名约定的所有.txt文件合并到一个文件夹中,然后将原始文件移动到子文件夹中。听起来很简单,而且在大多数情况下它都能正常工作,除了在生成的文件中,我得到了一个带有特殊字符的额外行,或者记事本++显示为“SUB”的东西,而在普通记事本中,它看起来就像一块垂直的砖块 这是相关位: copy /A %RUTA_FTP%\TEST_*.TXT %SRCFILE% mkdir %RUTA_BKP% move /Y %RUTA_FTP%\TEST_*.TXT

我正在尝试创建一个批处理脚本,将文件夹中具有特定命名约定的所有.txt文件合并到一个文件夹中,然后将原始文件移动到子文件夹中。听起来很简单,而且在大多数情况下它都能正常工作,除了在生成的文件中,我得到了一个带有特殊字符的额外行,或者记事本++显示为“SUB”的东西,而在普通记事本中,它看起来就像一块垂直的砖块

这是相关位:

copy /A %RUTA_FTP%\TEST_*.TXT %SRCFILE%
mkdir %RUTA_BKP%
move /Y %RUTA_FTP%\TEST_*.TXT %RUTA_BKP%
这就是结果:

现在,我也可以使用/b进行复制,最后一个字符不会出现,但这会导致另一个问题,因为我正在尝试将此文件传输到主机系统中,这有其自身的问题

我看到了另一个问题,答案似乎就是我所需要的。然而,我得到了一个非常奇怪的输出,代码本身写在文件中:

If Not Exist "%SrcFile%" Exit /B
Copy /Y "%SRCFILE%" "%SRCFILE%.bak">Nul 2>&1||Exit /B

(   Set "Line="
   For /F "UseBackQ Delims=" %%A In ("%SRCFILE%.bak") Do (
       SetLocal EnableDelayedExpansion
       If Defined Line Echo !Line!
       EndLocal
       Set "Line=%%A"))>"%SRCFILE%"
EndLocal


你知道为什么会发生这种情况,或者用其他方法删除这个角色吗?谢谢

/B
附加到命令行
复制/A%RUTA\u FTP%\TEST\u*.TXT%SRCFILE%
以避免此类问题;要从现有文件中截断这样的行尾标记,请尝试复制“file.txt”/A“file.tmp”/B&&move/Y“file.tmp”“file.txt”…