Mat*_*och 10 windows null ascii batch-file
我试图从Windows批处理脚本中将ASCII空字符(nul)写入文件但没有成功.我最初尝试使用echo这样的:
echo <Alt+2+5+6>
Run Code Online (Sandbox Code Playgroud)
看起来它应该工作(<Alt+2+5+6>在命令窗口中键入会写一个空字符 - 或者^@它出现),但echo然后输出:
More?
Run Code Online (Sandbox Code Playgroud)
并挂起,直到我按下<Return>.作为替代方案,我尝试使用:
copy con tmp.txt >nul
<Alt+2+5+6><Ctrl+Z>
Run Code Online (Sandbox Code Playgroud)
这正是我需要的,但只有在命令窗口中手动输入它.如果我从批处理文件中运行它,它会挂起,直到我按下,<Ctrl+Z>但即使这样,输出文件也会被创建但仍然是空的.
我真的希望批处理文件独立,而不需要(例如)包含空字符的单独文件,可以在需要时复制.
好吧,这很棘手,而且解决方案很丑陋,但它有效。
您可以使用批处理文件本身作为包含要复制的空字符的文件。
该批处理文件名为null.bat:
findstr /v /r \n null.bat >> myfile.txt
[NULL]
Run Code Online (Sandbox Code Playgroud)
(其中最后一行仅包含空字符)将空字符附加到myfile.txt。
findstr /v /r显示与正则表达式不匹配的所有行,即仅显示最后一行,因为没有换行符。
我尝试了其他几种方法,但这是我能找到的唯一一种没有删除空字符的方法。
注意: findstr最初随 Windows 2000 一起提供,因此可能不适用于早期版本的 Windows
我不喜欢无法轻松复制/粘贴到文本文件的解决方案。所以还有一些方法:
1)mshta(可以直接在批处理文件中或从命令行使用):
mshta vbscript:execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write( Chr(00) ):Close")>testfile
Run Code Online (Sandbox Code Playgroud)
2)certutil(需要一个临时文件)
echo 00>null.hex
certutil -decodehex null.hex null.bin
Run Code Online (Sandbox Code Playgroud)
3) makecab 只是在这里检查子程序 - http://ss64.com/nt/syntax-genchr.html
| 归档时间: |
|
| 查看次数: |
10799 次 |
| 最近记录: |