2017-05-02 24 views
-1

これは私の最初の質問ですので、ごめんなさい。なぜこのコードは機能しませんか?

私は今、暇つぶしのためのプログラムに取り組んでいます、それはタスクのスケジュールとそれらのタスクが完了しなければならない時間であると考えられています。

すべてうまくいきますが、なぜこの部分がうまくいかないのかわかりません。その後、

:edit    
echo Select Task   
echo (from 1 to 7)    
set /p sel= 
if %sel%=1 (goto task1) 

そして

が私をここに持って来ることになって

:task1   
pause         
echo Insert Task   
echo.   
set /p task1=   
echo.    
echo Set Time   
echo.  
set /p %time1%=   
echo.    
pause 
+0

コマンドプロンプトウィンドウを開き、 '/ if 'を実行すると、このコマンドのヘルプが表示されます。あなたが読むことができるように、等しい演算子は '='または '='や 'EQU'ではなく' == 'です。 __CD__コマンドを使用してバッチファイルのディレクトリに移動し、その名前を入力してRETURNキーを押して実行すると、コマンドプロンプトウィンドウ内からバッチファイルを実行すると、Windowsコマンドインタプリタによって構文で出力されるエラーメッセージが表示されますこのようなエラー。バッチファイルをダブルクリックすると、実行時にコンソールウィンドウが自動的に閉じられるため、開発中のバッチファイルをテストするのには不向きです。 – Mofi

+0

回答の最初の章も参照してください。[バッチファイルの定数とのバッチファイルの比較に失敗しました](http://stackoverflow.com/a/42448601/3074564)これは約バッチファイルのデバッグです.__ – Mofi

+0

[SS64のバッチ参照サイト](https://ss64.com/nt/)が便利です。 –

答えて

1

ライン:if %sel%=1 (goto task1)は非常に不完全です。

はそれを書く:

if "%sel%"=="1" goto task1 
2

@Antonioがifの文に問題がある、言ったように。私はまた、

set /p time1= 

でなければなりません:task1

set /p %time1%= 

で別の問題を見つける...とwww.ss64.com/ntとバッチスクリプトのほとんどのレッスンを取るために行きます。

2

あなたのIFステートメントです。 「==」二重の等号を使用

set var=fubar 

2つの値を比較する:シングル等号「=」バッチ内の代入演算子として使用されている署名

if "%var%"=="fubar" echo It'll be reet! 

希望、これは一つであった、助けています私がコードを書こうとしていたときにいつも私を得たもののうち、あなたはそれに慣れます。

関連する問題