2012-12-20 27 views
0

我想写一个快速批处理文件。它将采用命令的结果,在其周围放置一些额外的文本和引号,并将其放入一个新文件中。问题是我正在运行的命令的结果包含一个新行。这里的命令:从Windows外壳修剪空白命令结果

p4 changelists -m 1 -t //depot/...> %FILENAME% 

p4命令的输出具有在其末端有一个换行符。我将它放入的文件需要围绕该命令的输出引用引号,但命令中包含换行符的事实意味着“结束引用”出现在文件的新行中,而不是为我正在做的事情工作。

我试过将该命令的输出写入文件并读回来,并试图在包含输出的文件上运行FINDSTR,但我似乎总是找回愚蠢的尾随空格。我甚至尝试在文件中插入退格,但只是将退格字符放入文件中,而不是实际执行退格键...

有什么要做的吗?

回答

1

我不是perl的向导,但以下似乎工作:

p4 changelists -m 1 -t //depot/...| perl -p -e "s/^/\042/;s/$/\042/"

退房Strawberry Perl,它提供的Perl的Windows版本。

即使在Windows下解决这类问题时,我总是看着我的Unix工具。 sed和gawk也会帮助你,请查看msysgit以获得一系列可在Windows上运行的Unix工具。

+1

我喜欢你的想法,只是咬紧牙关,使用Windows内部的Unix工具。我试图成为一名粉丝,并使用本机Windows shell命令来做所有事情,但看起来更麻烦而不值得! – aardvarkk