2016-12-29 7 views
0

ユーザから2つの入力パラメータを受け取り、それらのパラメータを渡して別のスクリプトを呼び出す必要があるスクリプトを呼び出すバッチスクリプトを作成しようとしています。私はバッチスクリプトに慣れていません。私は以下のコードを書いていますが、最終的なスクリプトは失敗します。ユーザーが送信したパラメータは正しく取得されません。ユーザから取得したパラメータを使用してバッチファイルを実行する

フローは次のとおりです。userInput.batは、を呼び出すmybat.batを呼び出します。 userInput.batため

コード:mybat.batため

set /p userName="Enter the userName: " 
echo %userName% 
set /p dateofbirth="Enter the dateofbirth: " 
echo %dateofbirth% 
CALL mybat.bat %userName% %dateofbirth% 

コード:startTask.batため

CALL startTask.bat %1 "myHouseAddress" %2 
CALL startTask.bat %1 "myOfficeAddress" %2 

コード:

java -classpath joda-time-1.6.jar com.mycode.somecode.KickOffTask %1 %2 %3 
+1

だから、あなたは問題が何であるか、ファイル内で見つけましたか?変数をデバッグ/エコーしましたか? – moffeltje

答えて

1

そのスクリプトが一部だけでない限り、あなたのスクリプトは、正常に動作するようですあなたのプログラムの

%username%変数

でスペースの

  • のサポートが追加されましたを確認する事前に定義された変数
  • を追加しましたエラーであるとして、%user%%username%を変更

    • :私はいくつかの改良を加えました

      userinput.bat:

      @echo off 
      :query.user 
          set "user=" 
          set /p user="Enter the username: " 
          if not defined user (goto query.user) else (echo user=%user%) 
      
      :query.dateofbirth 
          set "dateofbirth=" 
          set /p dateofbirth="Enter dateofbirth: " 
          if not defined dateofbirth (goto query.dateofbirth) else (echo dateofbirth=%dateofbirth%) 
      
      call mybat.bat "%user%" "%dateofbirth%" 
      

      mybat.bat:

      @echo off 
      call startTask.bat "%~1" "myHouseAddress" "%~2" 
      call startTask.bat "%~1" "myOfficeAddress" "%~2" 
      

      startTask.bat:

      @echo off 
      java -classpath joda-time-1.6.jar com.mycode.somecode.KickOffTask "%~1" "%~2" "%~3" 
      
  • 関連する問題