簡體   English   中英

從Java運行批處理文件時,在>>之前隨機出現1

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM