作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
-6ren">
我正在编写一个复制 CMD 的批处理文件,但更加自定义。我想做的是扫描 %input%
以获得导致不同操作的多个不同结果。为了帮助您理解我的意思,我尝试这样做:
set /p input="%cd%>"
if "%input%" == "cls" (
GOTO reset
) else (
if "%input%" == freespace (
GOTO freespace
) else (
title %input%
%input%
GOTO A
这只会导致运行批处理文件的 CMD 窗口崩溃。无论如何,我可以使用 IF 语句对这两个响应(或可能更多)进行排序吗?我意识到这与其他称为“批量使用多个 if 语句”的问题类似,但它们与我尝试放入 IF 语句的格式不同。
最佳答案
您似乎正在通过单击批处理来运行它,这意味着您不会看到错误消息。最好从命令提示符运行批处理,以便消息可见且持久。
您提供的代码至少存在两个问题。
首先是您没有关闭 else
子句的括号,因此批处理末尾有两个待处理的右括号。
格式:
if x=y (dothis
) else (
if p==q (dosomethingelse
) else (
dosomethingelseentirely
)
)
第二个问题是 if
是非常字面的字符串匹配。它包含要匹配的字符串中的引号,因此
if "%input%" == freespace (
永远不可能为真,因为 input
被引用,但 freespace
不是(与第一个 if
中的 cls
不同) )
顺便说一句 - if/i ...
将执行不区分大小写的比较。
关于windows - 使用 IF 批量过滤多个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43852613/
我是一名优秀的程序员,十分优秀!