当前位置: 首页 > 面试题库 >

从Java运行批处理文件时,在>>之前随机出现1

庞书
2023-03-14
问题内容

我正在尝试从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 写入文本文件。



 类似资料:
  • 问题内容: 我正在尝试从Java可执行文件运行另一个目录中的批处理文件。我有以下代码: 结果是程序在运行该程序的根目录中打开一个cmd窗口,并且无法访问我提供的文件路径。 问题答案: 而不是,您需要使用方法签名: 但就我个人而言,我会改用,它稍微冗长一些,但比容易使用和调试。

  • 我试图从我的Java可执行文件运行另一个目录中的批处理文件。我有以下代码: 结果是,程序在运行程序的根目录中打开了一个cmd窗口,无法访问我提供的文件路径。

  • 在为windows 7 64位运行jmeter(4.0版)批处理文件时,我发现以下错误:findstr未被识别为Internal或外部命令、可操作程序或批处理文件。找不到java可执行文件或版本我已将系统变量也设置为“C:\apache-jmeter-4.0\bin”,并检查是否安装了java版本和JDk(9.4版本)。

  • 问题内容: 我想从Java程序执行批处理文件。 我正在使用以下命令。 但是问题是我想提供一个相对路径而不是绝对路径,以便我可以在任何组件上部署该Java项目。 项目的目录结构如下: 我想从“解析器”目录中的“ Main.java”文件中运行“ util”目录中的“ Server.bat”文件。 问题答案: 当Java运行时,您可以将Runtime.exec()与相对路径一起使用,相对方式是相对于当

  • 问题内容: 在我的Java应用程序中,我想运行一个名为 的批处理文件 看来我什至无法执行我的批处理文件。我没主意了。 这就是我在Java中所拥有的: 以前,我有一个要运行的Python Sconscript文件,但由于该文件不起作用,我决定通过批处理文件调用该脚本,但该方法到目前为止尚未成功。 问题答案: 批处理文件不是可执行文件。他们需要一个应用程序来运行它们(即cmd)。 在UNIX上,脚本文

  • 问题内容: 我是Java新手。我一直在使用Eclipse测试一个简单的Java类(名为NewHelloWorld),它在控制台中运行良好。当我尝试从终端执行相同的操作时,它会正确编译(创建HelloWorld.class而不给出任何错误),但是随后显示以下错误 我也试过了,但是给出相同的错误也没有用。 这些是环境变量的值: 还有其他要求吗?或者我在这里错过了什么吗?谢谢 PS:使用Ubuntu 1