使用变量更改目录

时间:2015-10-13 20:11:30

标签: batch-file

我是编写批处理文件的新手。我想创建一个批处理文件,允许我使用变量更改2个目录。我所拥有的是迄今为止我所拥有的。有什么想法吗?

@echo off
S:
cd AAA
set /p CLIENTCODE=CLIENTCODE?
cd %CLIENTCODE%
pause
set /p SCHEMANAME=SCHEMANAME?
cd %SCHEMANAME%
pause

1 个答案:

答案 0 :(得分:0)

尝试以下批处理代码:

@echo off
setlocal
set "ClientCode=AAA"
set "SchemaName=5H"
:UserPrompt
cls
set /P "ClientCode=Enter client code (default: %ClientCode%): "
set /P "SchemaName=Enter schema name (default: %SchemaName%): "
if not exist "S:\%ClientCode%\%ClientCode%%SchemaName%" goto InputError
cd /D "S:\%ClientCode%\%ClientCode%%SchemaName%"
endlocal
goto :EOF

:InputError
echo.
echo Client code "%ClientCode%" or schema name "%SchemaName%" is not valid.
set "InputAgain=Y"
set /P "InputAgain=Enter data again (Y/N)? "
if /I "%InputAgain%" == "Y" goto UserPrompt
if /I "%InputAgain%" == "YES" goto UserPrompt
endlocal

此批处理文件首先定义客户端代码和模式名称的默认值,这样,当默认值正常时,用户只需按 RETURN ENTER 键即可。

接下来清除窗口并提示用户输入客户端代码和模式名称。根本没有验证用户的输入。

如果存在适当的目录(或文件),则进行非常简单的检查。

如果存在根据输入数据的目录,则更改当前目录。

如果目录不存在,则询问用户是否在输入错误时重复输入数据。在任何情况下,用户都可以输入YYES来重做数据输入。否则,批处理脚本退出而不更改目录。

没有真正努力验证用户输入字符串并验证输入的字符串是否真正导致目录而不是文件。

要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • cls /?
  • echo /?
  • endlocal /?
  • goto /?
  • if /?
  • set /?
  • setlocal /?