问题描述
17/03/2021 17:27 100 test2.txt
10 test2.txt:1:$DATA
1 File(s) 100 bytes
0 Dir(s) some bytes free
我通过 type somefile > test2.txt:1
得到的结果是正确的 10 字节 ADS。
但是当我从 ADS 中将它转换为单独的文件时,我得到了额外的 2 个字节 (0d0a):
findstr /V /L W3Alllov3DonaldTrump <test2.txt:1>test.exe
如何避免这种情况(并获得与原始文件类似的 10 字节文件而不是 12 字节文件)?
解决方法
它是 findstr
,它添加了行尾 (CRLF
,0d0a
)。与 find
、type
和 more
相同。所以你不能使用这些命令之一。 Copy /b
将是一个解决方案,但它不接受 ADS 名称。
如果 ADS 中只有一行(我认为是):
set /p "x="<"test2.txt:1"
<nul set /p "=%x%" >test.exe
注意:set
命令有长度限制,我不确定它对不可打印字符(尤其是 NUL
(0x00))的反应(这对于任何东西都很常见,我希望在 .EXE
) 中使用,因此这可能用途有限。