【问题标题】:Convert shell script to .bat file for running on Windows将 shell 脚本转换为 .bat 文件以在 Windows 上运行
【发布时间】:2015-04-15 12:56:23
【问题描述】:

我在.sh 文件中有这个脚本。 如何将其转换为 .bat 文件?

if ! "$JAVA_CMD" -cp "$CP" "$MAIN_CLASS" "$@" 2>/dev/null; then
        echo "error: main class is not found."
        exit 1
fi  

【问题讨论】:

  • 您想将 .sh 文件的完全相同的内容写入 .bat 文件吗?如果是,它可能无法在 Windows 上运行,因为 Windows 执行 shell 代码的方式与 Linux 不同。
  • 我想把它改成windows可以接受的格式
  • 您需要更改内容,因为两者都支持不同 - 不同的命令。
  • 如何更改?
  • @faribafarrokhpour 这在很大程度上取决于您要实现的目标。这个链接似乎有很好的信息:csie.ntu.edu.tw/~r92092/ref/win32/win32scripting.html

标签: java shell batch-file


【解决方案1】:

这大致等效,尽管任何非零返回值都会回显相同的文本。

@echo off
set CP="c:\mydir\MyClass.jar"
set MAIN_CLASS="MyClass"

java -cp %CP% %MAIN_CLASS% %* 2>NUL
IF %ERRORLEVEL% NEQ 0 ECHO "error: main class is not found." 

您可以将错误输出回显到临时文件,然后只需在非零返回上键入文件即可显示真正的错误:

@echo off
set CP="c:\mydir\MyClass.jar"
set MAIN_CLASS="MyClass"
set tempError=%temp%\javaRunError.txt

java -cp %CP% %MAIN_CLASS% %* 2>%tempError%
IF %ERRORLEVEL% NEQ 0 type %tempError%

如果你想变得花哨,你可以设置一个 goto 并将出口(错误级别)传回给调用者。

@echo off
set CP="c:\mydir\MyClass.jar"
set MAIN_CLASS="MyClass"
set tempError=%temp%\javaRunError.txt

java -cp %CP% %MAIN_CLASS% %* 2>%tempError%
IF %ERRORLEVEL% NEQ 0 goto badExit

:: Good-Bye!
:end
echo.
echo.
echo %time% %0 Completed Successfully!
exit /b

:badExit
echo.
echo.
echo %time% Failure Occurred in %0...
type %tempError%
exit /b 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 2011-12-13
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多