2016-11-16 49 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" (

但也没”工作。

我真的希望有人能帮助我。

更新: 现在我改变了语句:

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

我这样做了,它仍然没有效果,我更新了问题。 我希望你能帮上忙。 非常感谢您的回复。 –