【发布时间】:2014-04-04 14:51:41
【问题描述】:
我正在运行一个验证软件,我希望将所有输出发送到一个文本文件,并将多个文件的结果放置/附加到同一个文件中。我以为我的代码可以正常工作,但我发现我只能从 1 个文件输出到文本文件中获取结果。
java -jar /Applications/epubcheck-3.0.1/epubcheck-3.0.1.jar ~/Desktop/Validator/*.epub 2>&1 | tee -a ~/Desktop/Validator/EPUBCHECK3_results.txt
open ~/Desktop/Validator/EPUBCHECK3_results.txt
编辑
当我使用 Windows 命令行运行相同的 .jar 文件时,它将处理一批文件并适当地显示结果。我会这样做,但这意味着必须切换工作站并传输文件以验证它们。我想让它通过我的 Mac 系统上的 Unix shell 运行,这样我就不必做不必要的工作。在下面工作的命令行:
FOR /f %%1 in ('dir /b "C:\Users\scrawfo\Desktop\epubcheck\drop epubs here\*.epub"') do (
echo %%1 >> epubcheck.txt
java -jar "C:\Users\scrawfo\Desktop\epubcheck\epubcheck-3.0.jar" "C:\Users\scrawfo\Desktop\epubcheck\drop epubs here\%%1" 2>> epubcheck.txt
echo. >> epubcheck.txt)
notepad epubcheck.txt
del epubcheck.txt
【问题讨论】:
-
以前从未见过
open在 shellscript 中使用过。你只是想打印文件的内容吗?如果是这样,只需使用cat。 -
在运行 .jar 验证后,我实际上是在调用以打开文本文件。
-
你正在做的应该工作。也许问题出在其他地方。
-
@WilliamPursell 我刚刚编辑了我的问题。相同的 JAR 使用命令行在 Windows 上完美运行。我只是在尝试通过 Unix 时遇到问题