我目前正在编写一个批处理文件,以创建,编辑和删除我当前正在从事的实习工作的日记帐分录,我似乎不明白如何使if / else语句正常工作,这就是我的第一次使用批处理时,我所做的大多数编码都是在Linux或Python中进行的,所以也许我只是在犯一个愚蠢的错误:
:edit
echo Welcome to the editing menu!
echo To edit a journal entry, enter the date of the journal below in a MM-DD-YYYY format! (I.E. 05-8-1982)
powershell sleep 3
set /p filename2=What is the date of the entry you are looking for?
echo Searching for file now...
powershell sleep 1
if EXIST "%filename2%.txt" G:\Batch\JournalEntries\*
(
start "%filename2%.txt"
)
ELSE (
ECHO not found
从这一点来看,当我运行程序并进入编辑菜单时,要求我输入文件名。我将其放入,然后打开一个新的cmd窗口,其中包含我输入的文件名,因为它找不到我输入的名称(此操作是有目的的,我正在测试是否会给我else错误)
答案 0 :(得分:1)
您的固定代码必须类似于:
:edit
echo Welcome to the editing menu!
echo To edit a journal entry, enter the date of the journal below in a MM-DD-YYYY format! (I.E. 05-8-1982)
timeout /T 3 >nul
set /p "filename2=What is the date of the entry you are looking for? "
echo Searching for file now...
timeout /T 1 >nul
if exist "%filename2%.txt" (
if exist "G:\Batch\JournalEntries\*" (
start "" "%filename2%.txt"
) else (
echo Did not found files matching pattern G:\Batch\JournalEntries\*!
)
) else (
echo Did not found files matching pattern %filename2%.txt!
)
pause
一些注意事项:
timeout
批处理命令:用于等待指定的时间。备选:ping
。var
之类的变量时,引用value
和set "var=value"
。即使有/a
或/p
选项,也要使用相同的格式。if
命令的用法。至少一个括号应与if
位于同一行;有关更多详细信息,请参见上面的代码块。%filename2%.txt
文件时同时引用文件名,文件名和扩展名时出错。由于不允许使用引号作为文件/文件夹名,因此我删除了文件名和扩展名,只用了双引号。有关使用的命令的更多信息,请输入cmd.exe
:
echo /?
timeout /?
解释其用法ping /?
替代timeout
if /?
解释if
start /?