我写了一个名为promptvar.bat的程序 每次我正常运行它,它只是说:
]此时出人意料。
有什么问题?是::
吗?或者是echo
?
这是代码:( SYNTAX INCLUDED )
@echo off
::SYNTAX:
::PROMPTVAR [ /? | [VARIABLE NAME] [PROMPT] ([NEWLINE]) ]
::CHECK /?
if "%1"=="/?" (
echo PROMPTVAR
echo.
echo GET USER INPUT.
echo.
echo SYNTAX:
echo PROMPTVAR [ /? | [VARIABLE NAME] [PROMPT TEXT] ([NEWLINE]) ]
echo.
echo./? : GET HELP INFORMATION - THIS IS IT!
echo VARIABLE NAME : NAME OF VARIABLE
echo PROMPT TEXT : TEXT FOR TIP / PROMPT
echo NEWLINE : WITH THIS PARAMETER, YOU CAN MAKE A NEW LINE TO GET INPUT.
echo.
goto :EOF
)
::REAL INFO
if "%3"=="NEWLINE" (
echo.%2
set /p %1=
goto :EOF
) ELSE (
set /p %1="%2"
goto :EOF
)
goto :EOF
::LOCASE ONLY
:LoCase
FOR %%i IN ("A=a" "B=b" "C=c" "D=d" "E=e" "F=f" "G=g" "H=h" "I=i" "J=j" "K=k" "L=l" "M=m" "N=n" "O=o" "P=p" "Q=q" "R=r" "S=s" "T=t" "U=u" "V=v" "W=w" "X=x" "Y=y" "Z=z") DO CALL SET "%1=%%%1:%%~i%%"
GOTO:EOF
任何帮助将不胜感激 谢谢。
答案 0 :(得分:3)
在
echo PROMPTVAR [ /? | [VARIABLE NAME] [PROMPT TEXT] ([NEWLINE]) ]
因为它本身位于if
,所以cmd需要知道)不是if "%1"=="/?" (
为此,使用脱字符 ^ 转义)因此:
echo PROMPTVAR [ /? | [VARIABLE NAME] [PROMPT TEXT] ([NEWLINE]^) ]
%%
和%hi%
批次:
::@ECHO OFF
SETLOCAL
SET "hi="
ECHO +%%+%hi%+
goto :EOF
结果:
c:\106x>SETLOCAL
c:\106x>SET "hi="
c:\106x>ECHO +%++
+%++
c:\106x>goto :EOF
请注意echo
ON ,因此在提示后解释并显示每一行。
+
用于描述显示的两个元素。
似乎以我的方式为我工作 - 您正在测试哪些批次可以按照您的要求进行此项工作?