我在for循环中迭代命令输出.请考虑以下代码:
for /F "tokens=1 delims=?=" %%A in ('set __variable') do ( set %%A= )
Run Code Online (Sandbox Code Playgroud)
基本上我试图清除名称以"__variable"开头的每个环境变量的值.但是,如果没有这样的变量设置,我得到的,说:"没有定义的环境变量__variable",这是不是东西,我想我的控制台上显示错误.很自然地,我会改变我的代码:
for /F "tokens=1 delims=?=" %%A in ('set __variable 2> NUL') do ( set %%A= )
Run Code Online (Sandbox Code Playgroud)
但现在我收到一个新错误,说"2>此时出乎意料." 或者那种效果.现在我被困住了; 有没有办法让我完成我的目标,而不会在屏幕上显示标准错误?
And*_*aev 12
对于Windows NT 4及更高版本,您将需要转义管道和重定向符号,这通过在它们前面加上carets()来完成:
for /F "tokens=1 delims=?=" %A in ('set __variable 2^>NUL') do ( set %A= )
Run Code Online (Sandbox Code Playgroud)