我有一个看起来像这样的批处理脚本
@ 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 :(得分: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文件中的一个。
我在完成这些步骤之后运行了我的脚本,一切都像问题之前一样完美。