windows – 为什么输出传输时某些“for”命令不起作用?
发布时间:2020-11-17 00:55:01 所属栏目:Windows 来源:互联网
导读:作为我所看到的问题的一个例子,命令 for /D %%i in (*) do @if not exist m:home%%i echo %%i 给我一个当前目录中另一个目录中不存在的目录列表. 但是,如果我想将输出传递给另一个命令,例如: (for /D %%i in (*) do @if not exist m:home%%i echo %%i) | fin
作为我所看到的问题的一个例子,命令 for /D %%i in (*) do @if not exist m:home%%i echo %%i 给我一个当前目录中另一个目录中不存在的目录列表. 但是,如果我想将输出传递给另一个命令,例如: (for /D %%i in (*) do @if not exist m:home%%i echo %%i) | findstr /n . 我收到此错误消息: echo was unexpected at this time. 请注意,我不能将括号括起来,因为这会导致管道操作符在循环的每次迭代中被处理一次;我需要将循环的输出通过管道传递给应用程序的单个实例.例如,如果我在此示例中省略括号,则findstrc中的行号将始终显示为1,而不是计算目录数. 有人知道如何使这项工作,最好是在一般情况下,而不仅仅是这个具体的例子? Windows 7 SP1 x64. 这是具有特殊IF语法形式的解析器的问题,如:
但是这个没有问题
它可以通过定义包含单个IF的变量来解决. set "_IF_=IF" ( %%_IF_%% defined path echo It's defined ) | more ( %%_IF_%% errorlevel 0 echo Errorlevel is 0 or above ) | more 这是有效的,因为%% _ IF _ %%将在子进程解析块之前进行扩展. (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何控制Windows中打印机的打印机托盘选择
- 如何在Windows上确定是否安装了C/C++编译器
- windows-phone-8.1 – 如何检测在Windows 10 Mobile上启动的
- https – 如何在非Windows平台上忽略“System.Net.Http.Cur
- 汇编 – 我的.exe程序不是我的预期
- 标签为Windows的SSH工具?
- windows-10 – Windows 10移动设备错误:DEP6200
- adodb – Windows脚本宿主(jscript):我如何下载二进制文件
- PHP7安装Redis扩展教程【Linux与Windows平台】
- 在Windows UWP应用程序中使用Python和C#
推荐文章
站长推荐
- Windows – 如何将多个文件名传递给上下文菜单Sh
- windows-phone-8 – 添加辅助Windows Phone 8磁贴
- windows-server-2008 – IIS可以从GPU核心创建线
- 获取与Windows Vista上的C#.Net连接的无线网络的
- Windows10操作系统如何在局域网设置打印机共享
- windows – 使用cmd提示符搜索谷歌或其他搜索引擎
- windows-ce – 确定Windows CE可执行文件使用的1
- windows – 如何为Git-Bash设置16种终端颜色?
- Windows上Jenkins的git插件不使用带子模块的凭据
- windows – 是否可以将kubernetes作为docker容器
热点阅读