2016-11-16 3 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 

Я попытался с помощью "тест" переменную, то сохраняются в этот каталог, а затем читать, вместо:

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

и

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

но также Ждут» т работы.

Я действительно надеюсь, что кто-то может мне помочь.

Update: Теперь я изменил заявление:

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

Я сделал это, он все еще не работает, я обновил вопрос. Надеюсь, вы сможете помочь. Спасибо, что вы ответили так быстро. –

Смежные вопросы