例を示すために、 RubyInstallerからbundle.bat
ファイルを取得します。
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"ruby.exe" "C:/Ruby200/bin/bundle" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"ruby.exe" "%~dpn0" %*
私はこれを理解していません:
@
ここで何を意味し、@"ruby.exe"
二重引用符はどうなりますか?
ここにマニュアルで私はいくつかの説明を見つけました:
説明-最初の行はコマンドが表示されないようにします。「@echooff」の@は、その 行が表示されないようにします。
そして、これが私の2つのテストスクリプトです。
最初の1つ:
@ECHO OFF
@ECHO "123"
ECHO "123"
PAUSE
出力:
C:\win>batch.bat
"123"
"123"
@
行が表示されないようにしません。
二番目:
gem environment
バッチファイルからコマンドを呼び出したい。そして、ここで私はbundle.bat
ファイルからのコードによって導かれます。私のコード:
@ECHO OFF
@"gem environment"
PAUSE
出力はエラーです。2つの二重引用符に注意してください。
""gem environment"" is not a command or executable or package file.
しかしbundle.bat
、ラインでは@"ruby.exe" "%~dpn0" %*
動作します。
次に、スクリプトを変更します。
@ECHO OFF
REM Call like this...
@gem environment
REM or call like this.
gem environment
PAUSE
どちらも正常に動作します。出力:
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.3
- RUBY VERSION: 2.0.0 (2013-02-24 patchlevel 0) [i386-mingw32]
- INSTALLATION DIRECTORY: C:/Ruby200/lib/ruby/gems/2.0.0
- RUBY EXECUTABLE: C:/Ruby200/bin/ruby.exe
- EXECUTABLE DIRECTORY: C:/Ruby200/bin
... and so on
だから私の質問は:
@
バッチスクリプトの文字の意味は何ですか?- 後の値を二重引用符で囲む必要があるのは
@
いつですか?