批处理字符串,它是命令执行的输出

时间:2013-07-24 09:09:30

标签: batch-file command-prompt

我试图编写执行命令行文件的批处理文件,该文件输出一个大的xml文件。 该xml文件包含我要删除的换行符或回车符的唯一字符,然后,当它完成时,将其写入文件。 我知道如何通过'>'将输出重定向到文件: 所以我可以将我的命令结果输出到如下文件: exec.exe [args]> file.txt的 问题是我想从中删除\ r,\ n,所以我想把文件导出到一个变量然后把它写到最后的文件中..我找到了这个函数:

FOR /F "tokens=*" %A IN ('exec.exe [args]') DO SET Variable=%A

然后应用以下内容:

set A=%A:\r=%
set A=%A:\n=%

然后将A的内容写入文件。 当然,这不起作用,这就是为什么我在这里。 它适用于测试目的,我设置一个短字符串或'echo ..'来测试函数,但我的程序输出可能包含特殊字符,所以它不能正常工作。 输出包含<?xml version="1.0" encod但是当我在命令行中查看输出时,我看到: ■< ? x m l v e r s i o n = " 1 . 0 "(当然还有更多) 我在这里错过了什么? 如果有更好的方法,我的耳朵......我不介意。 我不太熟悉Windows shell脚本,这就是我在互联网上找到的。

1 个答案:

答案 0 :(得分:0)

使用来自 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855

的帮助程序批处理文件repl.bat
@echo off
for /f "delims=" %%a in ('type "file.txt" ^| repl "\r\n" "" m ') do set "variable=%%a"

该变量限制为8KB的文本。