这是我的wip程序
@ECHO OFF
COLOR 0B
:JRNLMENU
CLS
ECHO WHAT WOULD YOU LIKE TO DO?
ECHO.
ECHO.
ECHO 1-CREATE NEW ENTRY
ECHO 2-READ OLD ENTRIES
ECHO 3-EXIT
SET/P "CHO=>"
IF %CHO%==1 GOTO TESTFOR
IF %CHO%==2 GOTO VIEWENTRY
IF %CHO%==3 GOTO EXIT
ECHO ERROR, PLEASE TRY AGAIN
PAUSE
CLS
GOTO JRNLMENU
:TESTFOR
CLS
CD C:\USERS\%USERNAME%\DOCUMENTS\
IF EXIST CATSYSTEMS GOTO CREATEJRNL
IF NOT EXIST CATSYSTEMS GOTO CREATEFLDR
:CREATEFLDR
MD c:\USERS\%USERNAME%\DOCUMENTS\CATSYSTEMS
CLS
ECHO HELLO
PAUSE
CLS
GOTO CREATEJRNL
:CREATEJRNL
ECHO TYPE WHAT YOU WOULD LIKE TO PUT IN YOUR JOURNAL
ECHO PRESS ENTER TO GO TO THE NEXT LINE
PAUSE如果文件夹在那里,我不能让它跳过createfldr。它将在正确的位置创建它,但它似乎不会检查它是否在那里。我有一个锁定文件夹的批处理文件(就像大多数人看到的那样),所以我认为testfor部分应该可以工作。然而,我经常使用的大多数其他代码,所以我非常确定所有的命令都可以工作。任何帮助都是非常好的:)
发布于 2014-07-01 23:31:07
我建议使用以下版本的批处理文件:
@ECHO OFF
COLOR 0B
:JRNLMENU
CLS
ECHO WHAT WOULD YOU LIKE TO DO?
ECHO.
ECHO.
ECHO 1-CREATE NEW ENTRY
ECHO 2-READ OLD ENTRIES
ECHO 3-EXIT
SET /P "CHO=>"
IF %CHO%==1 GOTO TESTFOR
IF %CHO%==2 GOTO VIEWENTRY
IF %CHO%==3 GOTO EXIT
ECHO ERROR, PLEASE TRY AGAIN
PAUSE
GOTO JRNLMENU
:TESTFOR
CLS
CD /D "C:\USERS\%USERNAME%\DOCUMENTS\"
IF EXIST CATSYSTEMS GOTO CREATEJRNL
IF NOT EXIST CATSYSTEMS GOTO CREATEFLDR
:CREATEFLDR
MD "C:\USERS\%USERNAME%\DOCUMENTS\CATSYSTEMS"
CLS
ECHO HELLO
PAUSE
CLS
GOTO CREATEJRNL
:CREATEJRNL
ECHO TYPE WHAT YOU WOULD LIKE TO PUT IN YOUR JOURNAL
ECHO PRESS ENTER TO GO TO THE NEXT LINE
PAUSE这里有一些小的修正。可能重要的是:
如果当前工作目录不在驱动器C:上,则不带可选参数/D的
CD可能会失败。因此,如果在执行批处理文件时无法控制哪个目录是工作目录(快捷方式属性中的Start In),则在更改当前工作目录时使用/D总是更好。%USERNAME%的路径都用双引号括起来。另外两个提示:
如果不是所有用户都使用Windows Vista或更高版本,或者用户帐户目录不在驱动器上,则
%USERPROFILE%而不是C:\USERS\%USERNAME%来查看执行批处理文件时发生的情况,并在顶部使用@ECHO ON而不是@ECHO OFF。https://stackoverflow.com/questions/24482612
复制相似问题