![](/img/trans.png)
[英]Running batch file from java causes hang, but not when running it normally
[英]when running batch file from java , 1 randomly appears before >>
我正在尝试从Java代码运行批处理文件
这是批处理文件行:
C:\Users\abdelk\workspace\Symmetrix>symconfigure -sid 13 -cmd "create dev count=16, size=139840, emulation=FBA , config=TDEV;" commit -nop >> out_file.txt
当我从代码中运行批处理文件时, “ 1”随机出现在“ >>”之前。 所以cmd中的行变成这样:
C:\Users\abdelk\workspace\Symmetrix>symconfigure -sid 13 -cmd "create dev count=16, size=139840, emulation=FBA , config=TDEV;" commit -nop **1>>** outfile.txt
我不知道如何删除此随机出现的“ 1”
这就是我从代码中运行批处理文件的方式
rt.exec("cmd.exe /c start "+functions_object.edit_host_name(current_host_name)+"_Meta.bat",null,new File("C:\\Users\\abdelk\\workspace\\Project"));
首先, 使用命令重定向运算符查看Microsoft的TechNet文章。
数值1与handle stdout (标准输出)等效。
在批处理文件中,重定向标准输出中省略数字1 。
例如,将这两行放入批处理文件并运行
echo This is just a redirect test.>CapturedStandardOutput.txt
@pause
您将看到cmd.exe
自动在重定向运算符>
左侧插入1
(空格和1)。
通常,不建议在批处理文件1中已经为stdout添加 。
为什么?
查看执行以下命令:
echo This is just a redirect test.1>CapturedStandardOutput.txt
@pause
您会在控制台窗口中看到:
echo This is just a redirect test.1 1>CapturedStandardOutput.txt
并且文件CapturedStandardOutput.txt包含以下行:
This is just a redirect test.1
解决方案是在批处理文件中使用:
echo This is just a redirect test. 1>CapturedStandardOutput.txt
这导致该行的执行:
echo This is just a redirect test. 1>CapturedStandardOutput.txt
现在,在文件CapturedStandardOutput.txt中有以下行:
This is just a redirect test.
在浏览器窗口中您看不到的是,与第一个示例相比,文本文件中的行现在以尾部空格结尾。 因此最好是始终使用>
和>>
而不带1 ,否则控制写入文本文件的内容并不是很简单。
另一个提示:
要将文本重定向到以1、2,...,9结尾的文件,必须使用^
对该数字进行转义。
用以下命令执行批处理文件
echo Number is ^1>CapturedStandardOutput.txt
@pause
导致执行命令行
echo Number is 1 1>CapturedStandardOutput.txt
在文件CapturedStandardOutput.txt中 ,
Number is 1
行尾没有尾随空格。
不得转义>
和>>
剩下的0 ,以将数字0写入文本文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.