2016-11-16 8 views
1

私はこれを理解することができません、私は実際に質問を策定する方法を知らなかった、私はこれが十分であることを願っています 私はこれを実験として取り組んでいます。 私は意図的に無効なディレクトリを挿入すると "指定されたパスが見つかりません"というメッセージが表示されます。インストール場所チェンジャーバッチ

@echo off 
set /a test=0 
title Color changer 
if exist "Settings/files.bat" (
call Settings/files.bat 
) else (
mkdir Settings 
echo set savloc=%cd%>Settings\files.bat 
call Settings\files.bat 
) 
if exist "%savloc%\color.bat" (
call "%savloc%\color.bat" 
) else (
color 0f 
) 
set menu=2 
goto menu 

:menu 
cls 
echo color : change color 
echo cd : change direction 
set /p menu= 
if "%menu%" == "color" goto setcolor 
if "%menu%" == "cd" goto changedir 
else goto menu 

:changedir 
cls 
set test=0 
echo (current location: %savloc%) 
echo What do you want your new location to be? 
set /p dir=# 
echo set test=1 > "%dir%\testfile.bat" 
call "%dir%\testfile.bat" 

If EXIST "%dir%\testfile.bat" (
echo Valid Location! (current location: %dir%) 
pause >nul 
echo set savloc=%dir%> Settings\files.bat 
call Settings\files.bat 
del "%dir%\testfile.bat" 
goto menu 
) 
iF NOT EXIST "%dir%\testfile.bat" (
echo Invalid Location, Please redo This step. (reset location to: %cd%) 
pause >nul 
echo set savloc=%cd%> Settings\files.bat 
call Settings\files.bat 
del "%dir%\testfile.bat" 
goto menu 
) 

goto menu 

:setcolor 
cls 
echo What do you want the color to be? 
echo. 
set /p clr=# 
color %clr% 
echo color %clr%>"%savloc%\color.bat" 
goto menu 

I "テスト" 変数を使用してみましたが、それはそのディレクトリに保存され、その後、読み、代わりに:

If EXIST "%dir%\testfile.bat" (

If NOT EXIST "%dir%\testfile.bat" (

が、それはまた、」didnの仕事。

私は本当に誰かが私を助けることを願っています。

更新: 今私はにステートメントを変更:

if exist "%dir%" (
    echo Valid Location! (current location: %dir%) 
    pause >nul 
    echo set savloc=%dir%> Settings\files.bat 
    call Settings\files.bat 
    goto menu 
) else (
    echo Invalid Location, Please redo This step. (reset location to: %cd%) 
    pause >nul 
    echo set savloc=%cd%> Settings\files.bat 
    call Settings\files.bat 
    goto menu 
) 

goto menu 

しかし、ディレクトリが無効である場合、今、それだけの設定にそれをエコー\ files.bat 、それは何も言いません。

答えて

0

%dir%\testfile.batのディレクトリをテストする前にエコーしています。

ディレクトリが無効な場合、リダイレクトは機能せず、エラーメッセージが表示されます。

チェックディレクトリ存在が最初です。修正の例:

set /p dir=# 

If NOT EXIST "%dir% (echo "%dir% does not exist 
goto menu 
) 

rem now echo has a chance to work 
echo set test=1> "%dir%\testfile.bat" 
call "%dir%\testfile.bat" 
+0

私はそれを実行しましたが、まだ実際には機能しません、私は質問を更新しました。 私はあなたが助けてくれることを願っています。 あなたはとても素早く返信してくれてありがとう。 –

関連する問題