2013-04-28 76 views
0

我有一個批處理腳本,看起來像這樣批處理腳本調用bash腳本,但輸出文件不填充

@ echo off c:/cygwin/bin/bash -li each_sec_extract.bash c:/iperfprocess/sprint/file1.txt > c:/iperfprocess/sprintbashed/file1.txt each_sec_extract.bash c:/iperfprocess/sprint/file2.txt > c:/iperfprocess/sprintbashed/file2.txt

當我運行該原樣,在Cygwin的bash終端彈出,我可以觀察但是,當我轉到文件應該位於的目錄(c:/ iperfprocess/sprintbashed /)時,我在空白文本文件中迎接輸出。當我手動輸入來自CMD行的指令時,我收到相同的結果。但是,當我直接從CYGWIN運行指令時,它完美地工作。最讓我失望的部分,這個腳本用於正常工作,然後我開始得到SED:權限被拒絕,這迫使我在管理模式下運行bash.exe。

有關可能發生什麼或解決方案可能的任何想法?提前感謝您提供的任何和所有幫助。

+0

您的腳本沒有換行符。 – foxidrive 2013-04-28 09:25:44

+0

'@ echo off'和'c:/ cygwin/bin/bash -li each_sec_extract.bash c:/iperfprocess/sprint/file1.txt> c:/iperfprocess/sprintbashed/file1.txt each_sec_extract之間存在換行符。 bash c:/perfprocess/sprint/file2.txt> c:/ iperfprocess/sprintbashed/file2.txt' – 2013-04-29 01:44:48

+0

這不是合法的批處理語法。在一個命令中重定向到多個文件在使用相同的STDOUT流時不可能如此。 – foxidrive 2013-04-29 10:49:13

回答

0

SED: Permission error是經歷過的空輸出文件的根本原因。以管理權限運行bash只是解決實際問題的一項工作。由於某種原因,sed.exe變得腐敗。該解決方案包括從http://sourceforge.net/projects/unxutils/?source=dlp下載UnxUtils並替換中的sed.exe,並將其替換爲UnxUtils zip文件中的一個。

在這些步驟之後,我運行了我的腳本,並且一切工作都完全像它在問題之前一樣。

0

這有什麼不同嗎?

@echo off 
c:/cygwin/bin/bash -li each_sec_extract.bash c:/iperfprocess/sprint/file1.txt > c:/iperfprocess/sprintbashed/file1.txt 
c:/cygwin/bin/bash -li each_sec_extract.bash c:/iperfprocess/sprint/file2.txt > c:/iperfprocess/sprintbashed/file2.txt 
+0

基本上它是一樣的,我不寫這樣的原因是因爲「SED:permission denied error」,這要求我在管理模式下運行bash.exe以繞過錯誤;我通過這個腳本運行4,000到6,000個文件,因此請求管理員權限多次是不可接受的。另外,如上所述編寫bash腳本仍然會產生空的輸出文件 – 2013-04-29 01:36:44

+0

請參閱我上面的註釋。 – foxidrive 2013-04-29 10:50:33