Windows 批处理文件 : if else

标签 windows batch-file

我正在做一个需要一个参数的简单批处理文件(您可以提供更多,但我忽略它们)。

为了测试,这是我目前所拥有的。

if not %1 == "" (
    dir /s/b %1
) else (
    echo no
)

基本上,我想说如果提供了一个参数,递归地显示文件夹中的所有文件。否则,说不。

当我提供参数时它会起作用,但如果我不提供参数它只会告诉我( was unexpected at this time

我的意思是,它可以工作,但我想至少显示一条用户友好的消息来解释为什么它不工作。我应该如何更改代码?

最佳答案

if not %1 == "" (

必须是

if not "%1" == "" (

如果没有给出参数,则它完全是空的,甚至 ""(在大多数编程语言中代表空字符串)也不是。所以我们使用周围的引号来检测空参数。

关于Windows 批处理文件 : if else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683583/

相关文章:

c# - 从 datetimepicker 获取起始日期和截止日期之间的值

windows - Puppet 安装在另一个节点定义中定义的软件

windows - 支持 Windows 2000 的普遍共识是什么?

windows - 为什么我在 Windows 上运行 Perl one liner 时出现“找不到字符串终止符 "'”错误

windows - 在 Windows PowerShell 中运行 VS 2017 构建工具

excel - 如何处理: Run-time error '53' File not found错误

batch-file - Windows : script/program for USB key that opens a console, 并设置路径和工作目录

python:无法从 Windows 上的 os.execl'd python 脚本中删除打开的文件

windows - 如何将标准输出实时传输到批处理脚本

linux - Linux Shell 中的 `{} +` 在 Windows 中相当于什么?