For loop 如何在批处理文件上使用命令获取文本文件的内容
我有一个文本文件,其中的内容在数据之间有很多NUL或空格: [nul][nul][nul][nul]姓名[nul][nul][nul][nul][nul][nul]姓氏 文本文件中的数据总是不同的 我使用for/F“usebackq delims=““%file%”中的%%a”)do echo%%a和类似命令搜索并测试了许多类似的问题,但我总是得到空结果For loop 如何在批处理文件上使用命令获取文本文件的内容,for-loop,batch-file,powershell,cmd,For Loop,Batch File,Powershell,Cmd,我有一个文本文件,其中的内容在数据之间有很多NUL或空格: [nul][nul][nul][nul]姓名[nul][nul][nul][nul][nul][nul]姓氏 文本文件中的数据总是不同的 我使用for/F“usebackq delims=““%file%”中的%%a”)do echo%%a和类似命令搜索并测试了许多类似的问题,但我总是得到空结果 如果您确实有一个包含以下内容的文本文件,请向任何人提供帮助。: 您只需在正常的For/F循环文件读取过程中省略NUL字符,然后您可以向以下人
如果您确实有一个包含以下内容的文本文件,请向任何人提供帮助。: 您只需在正常的
For/F
循环文件读取过程中省略NUL
字符,然后您可以向以下人员寻求帮助:
@For/F“Delims=“%%G In(
“%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe”^
-Nologo-NoProfile-Command“(获取内容'sourcefile.txt')”^
“-替换'\x00',''”)Do@Echo(%%G
@停顿
为了便于阅读,我已将这一长行拆分为多行,但您也可以将其作为一行:
@(对于/F“Delims=“%%G In(“%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe-Nologo-NoProfile-Command”(获取内容“sourcefile.txt”)-替换“\x00”,“”)执行@Echo(%%G)&暂停
要直接从命令提示符执行此操作,请执行以下操作:
For/F“Delims=“%G In('powershell-NoP'(GC'sourcefile.txt')-替换'\x00',''”)Do@Echo(%G
[编辑] 如果您想在您提供的确切示例中的两个特定单词之间添加一个comma,并且我在上面的链接图像中使用了它,那么是的,这是可能的 例如,您可以在PowerShell部件中通过更改:
-替换'\x00',''
到-替换'\x00','-替换'\x00','
或者,您可以通过更改For
循环选项:
“Delims=“
至”令牌=1*”
然后更改以下任一项:
@Echo(%%G
)或@Echo(%G
致:
@Echo(%%G、%%H
或@Echo(%G,%H
。NUL仅使用标准批处理会有问题。请参阅此处,了解如何处理。我们需要有关文件本身细节的更多信息。它显然不是标准ANSI纯文本文件。除非我们能够重现您的特定问题,否则我们将难以提供f专注的解决方案,必须依靠最佳猜测。作为一个技术网站,应该避免最佳猜测。也许你可以上传一份文件副本供感兴趣的人下载和评估。那太棒了!谢谢你。我不想推我的运气,但如果我想在不同的词之间添加一个昏迷,这可能吗?@P埃德罗卡瓦罗,我已经编辑了我的答案,把你的另外一个问题加入到上面。请阅读并考虑一个基于内容的行动。这很好。谢谢。我已经投票赞成你的答案,但是因为我的名誉只有1,投票不会公开出现。