For loop 如何在批处理文件上使用命令获取文本文件的内容

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字符,然后您可以向以下人

我有一个文本文件,其中的内容在数据之间有很多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“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,投票不会公开出现。