2016-11-08 7 views
-1

は私の問題だ:setコマンドのバッチクラッシュ?ここ

:NNEEWW 
cls 
echo Where to save the file (Type "Desktop" or "Docs") 
set /p SaveTo="Where to save: " 
if "%SaveTo%" == "Desktop" goto DT 
if "%SaveTo%" == "desktop" goto DT 
if "%SaveTo%" == "Docs" goto DC 
if "%SaveTo%" == "docs" goto DC 
goto NNEEWW 
:DT 
set Place=DE 
:DC 
set Place=DO 
cls 
echo 'Name your file [You can not add the following: \/: * ? " < > |]' 
set /p name="Name: " 
echo echo off>>"Current.BAT" 
echo cls>>"Current.BAT" 
title Editing: %name%.BAT - Program Creator 
cls 
echo Editing %name%.bat [Type "Quit" to save and quit, Type "Help" to get some help with commands] 
echo [@echo off has already been added, to get rid of it, type "echo on", without an @ symbol please] 
echo "Please do not add ['>', '|', '<'] as they are not yet supported" 
echo. 
:2 
set /p content="[-]: " 

今いつでも誰かの種類「ドキュメント」や「デスクトップ」プログラムは、単にクラッシュ!私はそれがセットコマンドと関係があると思うが、わからない。代わりに、GOTOの使用の

+0

セット配置した後= DE、あなたは何をする場所を設定することを飛び越えるために何かをしたいです。しかし、それは問題ではありません。そしてDocsとDesktopはたぶんあなたをループに導いてくれるでしょう。いくつかのエコーと一時停止コマンドを追加しようとしましたが、どのラインがクラッシュしているのか正確に分かっていますか? –

+0

DTに設定した後に実行するため、DT 'place'は常にDOと等しくなります。また 'If/I'は大文字と小文字を区別しない比較を行います(ヘルプに埋め込まれています)。 –

+0

@ Noodlesは、最後の質問でヘルプファイルを読むようにユーザーに指示しました。私のアドバイスは合理的な選択ではなかったと思います。 – Squashman

答えて

2

IF-ELSE構造:

:NNEEWW 
CLS 
ECHO Where to save the file (Type "Desktop" or "Docs") 
SET/P "SaveTo=Where to save: " 
IF /I "%SaveTo%" == "Desktop" (
    SET "Place=DE" 
) ELSE (
    IF /I "%SaveTo%" == "Docs" (
     SET "Place=DO" 
    ) ELSE (
     GOTO :NNEEWW 
    ) 
) 
CLS 
ECHO Name your file… 
+0

これはうまく見え、常にドキュメントに保存するように修正しました。 – NizonRox

関連する問題