【发布时间】:2011-12-31 06:19:50
【问题描述】:
在批处理文件中,我试图获取命令的输出并将其保存到变量中。
我的命令的目标是统计某个文件夹中的文件夹数。
- 我不能使用this 接受的答案中提供的技巧,因为我必须执行
cd path\to\my\folder才能进入当前目录。不幸的是,我无法执行此命令,因为path\to\my\folder实际上是一条 UNC 路径 (\\path\to\my\folder),而 windows cmd 不支持cd \\some\UNC\path。 - 我知道this 的回答,但我不想使用临时文件。
所以我尝试执行以下操作:
-
要获取文件夹的数量,我使用:
dir \\path\to\my\folder | find /c "<REP>"这很好用,并按我的预期返回一个数字。
-
为了在批处理变量中检索此命令的输出,我尝试了:
FOR /F "TOKENS=*" %%i IN ('\\path\to\my\folder | find /c "<REP>"') DO SET value = %%i但是没有成功,错误信息是……
|出乎意料。
...当我执行批处理文件时...
%%i 出乎意料。
当我尝试直接在命令窗口中执行命令时。我试图转义
<REP>字符串 (...find /c ""<REP>""') DO...) 周围的引号,得到了同样的错误。
我是否在正确的路径上检索变量中的输出?我应该怎么做才能解决错误消息?
或者也许有更简单的方法可以在变量中设置命令输出?
【问题讨论】:
-
解决您遇到的问题:1)
|应该像这样在该上下文中转义:^|,以及 2)%%i仅用于批处理文件,@987654335 @ 是直接在命令提示符下使用的对应物。
标签: windows command-line batch-file cmd