gpt4 book ai didi

windows - 将命令输出保存到变量

转载 作者:可可西里 更新时间:2023-11-01 11:21:31 26 4
gpt4 key购买 nike

在批处理文件中,我试图获取命令的输出并将其保存到变量中。

我的命令的目标是统计某个文件夹中的文件夹数量。

  • 我无法使用 this 中提供的技巧接受了答案,因为我必须做 cd path\to\my\folder到达当前目录。不幸的是,我不能执行此命令,因为 path\to\my\folder实际上是 UNC 路径 ( \\path\to\my\folder ),并且 cd \\some\UNC\path Windows cmd 不支持。
  • 我知道 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

    但没有成功,错误信息是...

    | was unexpected.

    ...当我执行批处理文件时...

    %%i was unexpected.

    当我尝试直接在命令窗口中执行命令时。我试图避开 <REP> 周围的引号string ( ...find /c ""<REP>""') DO...), 得到了同样的错误。

我是否在正确的路径中检索变量中的输出?我应该怎么做才能解决错误消息?
或者也许有更简单的方法在变量中设置命令输出?

最佳答案

您可以使用您首先提到的答案。你不必在那里 cd,但你可以使用 pushd 它将为 UNC 路径分配一个临时驱动器号,当你执行 popd 时将被释放

本质上:

pushd \\server\path
set count=0
for /d %%x in (*) do set /a count+=1
popd

关于windows - 将命令输出保存到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8166271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com