batch-file - 代码完成后批量删除变量的值
问题描述
我想做一个 if/else 语句,如果我的变量为空,它必须回显一个文本,但它永远不会为空,因为它一直给我我在 cmd 中写入的先前值。我怎么可能解决这个问题,我尝试使用 startlocal 和 endlocal 但我无法让它工作这是我的代码:
@echo off
set /p "Input= text:"
FOR %%a IN (%Input%) DO (
IF "%%a"=="" (echo Write atleast 1 word) else (
ECHO %%a
)
)
在这张图片中你可以看到,如果我先写一些东西然后点击回车,它会把所有东西放在一起,但第二次我什么也没写,得到相同的值返回 Cmd 图片
解决方案
删除input
开始时变量中的任何内容。
@echo off
SET "Input="
set /p "Input= text:"
推荐阅读
- php - 用 PHP 显示日文字符
- azure - 有没有办法在 Log Analytics 中查询 Azure 安全建议 (ASC)
- python - 在 Python 中使用 psycopg2 将 postgres 表导出到 csv
- android - 在 onNext 之前对 observable 中的每个项目执行非转换操作
- python - 将多行组合成一行一列Python
- c++ - 为什么 while (true) 会影响它之前的代码?
- mongodb - 初始管道关闭后使用光标的问题 – MongoDB
- neo4j - 使用 APOC 导入 JSON 数据
- java - 动态创建谓词
- r - 将子分组应用于 R 中的子组