【问题标题】:Trying to make a telefphonebook in batchscript Win8尝试在批处理脚本 Win8 中制作电话簿
【发布时间】:2015-04-20 12:01:18
【问题描述】:

我是批处理脚本的初学者,我正在尝试制作一个可以打印所有电话号码、添加、删除和搜索电话号码的电话寄存器,但我无法让它正常工作,我想知道我去了哪里错误的。代码在下面,在此先感谢。

echo Print out all content ^<1^> 
echo Add a new number ^<2^> 
echo Delete a number ^<3^> 
echo Search ^<4^> 
echo Exit ^<5^> 
set /p val="Choose between 1-5: " 

GOTO CASE_%val% 
:CASE_1 for /f "tokens=*" %%a in 
(telephoneregister.txt) do 
( echo %%a ) 
GOTO END_SWITCH 
:CASE_2 echo "Number: " set /p p1="Nr" 
echo %p1% >> %output%\telephoneregister.txt 
GOTO END_SWITCH 
:CASE_3 echo "Which number would you like to delete? " 
set /p num="Telephoneregister" 
type telephoneregister.txt | findstr /v %num% >telephoneregister.txt del /s telephoneregister.txt 
type telephoneregister.txt > tele.txt del /s tele1.txt 
GOTO END_SWITCH 
:CASE_4 set /p n1="Number: "
 findstr %n1% telephoneregister.txt 
GOTO END_SWITCH 
:CASE_5 exit 0
 GOTO END_SWITCH 
:END_SWITCH 
pause

【问题讨论】:

  • @shellter ^ 转义了以下特殊字符,因此它被打印而不是执行。所以这些线没问题。但是:CASE_3 中的行似乎很乱(文件名不匹配,并且可能缺少换行符)

标签: windows shell batch-file cmd


【解决方案1】:

我在这里找到了这段代码:

@echo off
:menu
cls
echo 1- Print out all content 
echo 2- Add a new number
echo 3- Delete a number
echo 4- Search
echo 5- Exit 
set /p val="Choose between 1-5: " 
if %val%== 1 goto one
if %val%== 2 goto two
if %val%==3 goto three
if %val%== 4 goto four
if %val%== 5 goto five

:one
cls
type telephoneregister.txt
echo.
echo ====================
set /p =ENTER to go back to menu.
goto menu

:two
cls
set /p p1="Number: " 
echo %p1% >> telephoneregister.txt
echo. 
echo ====================
set /p =ENTER to go back to menu.
goto menu

:three
cls
echo Which number would you like to delete?
set /p num="Telephoneregister: " 
type telephoneregister.txt | findstr /v %num% >telephoneregister.txt del /s telephoneregister.txt 
type telephoneregister.txt > tele.txt del /s tele1.txt 
set /p =ENTER to go back to menu.
goto menu

:four
cls
set /p n1="Number: "
findstr /r /c:%n1% telephoneregister.txt
echo.
echo ====================
SET /p =ENTER to go back to menu.
goto menu

:five
exit

它还没有完全完成(选项 3 它不起作用)但你可以看到你做错了什么,并且可能会在网络上搜索解决方案。如果您对上面的代码有任何疑问,请问!祝你好运。

【讨论】:

  • 非常感谢,正如您所说的删除功能的问题,这似乎工作得很好,但它仍然是一个很大的帮助。
  • @user2125673 不客气。如果您找到了方法,请在此处发布。如果我找到它,我也会发布。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
相关资源
最近更新 更多