批处理脚本调用Bash脚本,但不填充输出文件

时间:2013-04-28 07:19:30

标签: bash batch-file sed

我有一个看起来像这样的批处理脚本

@ 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。

关于可能发生的事情或解决方案可能是什么的任何想法?提前感谢您提供的任何和所有帮助。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

SED: Permission error是遇到空输出文件的根本原因。在管理权限中运行bash只是解决了实际问题的一种解决方法。出于某种原因,sed.exe变得腐败。该解决方案包括从http://sourceforge.net/projects/unxutils/?source=dlp下载UnxUtils并替换sed.exe中找到的CYGWIN/bin/并将其替换为UnxUtils zip文件中的一个。

我在完成这些步骤之后运行了我的脚本,一切都像问题之前一样完美。