batch-file - 批处理文件: suppress command error output when used in a for loop

标签 batch-file

我在for循环中遍历命令输出。考虑以下代码:

for /F "tokens=1 delims=?=" %%A in ('set __variable') do ( set %%A= )

基本上,我试图清除名称以“__variable”开头的每个环境变量的值。但是,如果未设置此类变量,则会出现错误消息“未定义环境变量__variable”,这不是我希望在控制台上显示的内容。所以自然地,我会像这样更改我的代码:
for /F "tokens=1 delims=?=" %%A in ('set __variable 2> NUL') do ( set %%A= )

但是,现在我收到一个新错误,提示“2>目前是意外情况”。或类似的效果。现在我被困住了。有什么方法可以让我完成目标,而又不会在屏幕上显示标准错误?

最佳答案

对于Windows NT 4和更高版本,您将需要对管道符号和重定向符号进行转义,这可以通过在符号和符号前面加上尖号(ˆ)来完成:

for /F "tokens=1 delims=?=" %A in ('set __variable 2^>NUL') do ( set %A= )

关于batch-file - 批处理文件: suppress command error output when used in a for loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7179028/

相关文章:

windows - 用于检查域中计算机名称的简单批处理脚本

java - 从java执行时如何为runas命令提供密码

batch-file - 批量查找字符串并复制上方 1 行和下方 x 行

javascript - 在批处理文件中嵌入 JS 代码

cmd - Gawk 上的实数

windows - 在 Windows 上使用带有 for/f 的管道命令(使用 reg 查询)

windows - 如何在运行批处理脚本时获取当前事件窗口?

batch-file - 自动打开浏览器并登录网站?

windows - 用 'comma' 替换动态字符串 - Windows 批处理文件

java - 无法在java中运行bat文件