batch-file - 运行 .bat 文件后,立即关闭
问题描述
运行下面的代码后,我的 .bat 文件立即关闭
@echo off
FOR /F "tokens=*" %%G IN ('dir /b | findstr /r "test.*.apk"') DO set var=%%G
echo %var%
cmd /k
但是如果我在没有匹配正则表达式的情况下运行稍微修改过的版本,它就可以正常工作
@echo off
FOR /F "tokens=*" %%G IN ('dir /b /s "test-20190201.apk"') DO set var=%%G
echo %var%
cmd /k
有谁知道为什么?
解决方案
你需要逃离管道:
@echo off
FOR /F "tokens=*" %%G IN ('dir /b ^| findstr /r "test.*.apk"') DO set var=%%G
echo %var%
cmd /k
否则你会破坏FOR
解析器,因为管道执行的优先级高于FOR
推荐阅读
- mongodb - 带有匹配查询的 mongo 组不适用于 java
- python - (discord.py) 获取特定语音频道中所有成员的列表
- electron - Electron - 提取 exe 或 dmg 时是否有事件被激活
- spring - Hibernate hibernate.ddl-auto - 如何避免在应用程序首次启动后手动需要将“create”替换为“update”
- java - 我可以在不使用类名的情况下调用另一个类的静态方法吗?
- python - 两个csv文件的比较和输出有什么不同?
- php - 我的 php 和 html 代码有什么问题?
- r - 获取列表的名称作为数据框中的列
- c++ - Emscripten 声称我在不使用 requestAnimationFrame 的情况下进行渲染
- spring - 使用 fetch 和 @RequestParams("params") List 时如何将列表绑定到控制器