【问题标题】:Batch file Nested for loop for identifying shares批处理文件嵌套用于识别共享的循环
【发布时间】:2016-05-20 18:29:12
【问题描述】:

我有以下场景

    @echo off
    for %%x in (
    machine1
    machine2
    machine3

for %%y in (
    A
    B
    C
    D
           )
              )

    do
    (
    echo machine is %%x

    \\%%x\%%y

    )

我实际上是在检查股票是否开盘

\\machine1\A , \\machine1\B 等等..

你们能帮我解决嵌套循环吗?

【问题讨论】:

    标签: windows batch-file network-shares


    【解决方案1】:

    如果我理解您的问题,您想遍历一堆计算机,并在每台计算机上遍历一堆驱动器号以查看驱动器是否共享?如果是这样,你真的很接近。您只需要使用IF EXIST 来检查您正在构建的路径是否是共享的。

    @echo off
    FOR %%x IN (machine1, machine2, machine3) DO (
        echo Checking shares on machine: %%x
        FOR %%y IN (A, B, C, D) DO (
            echo Testing share: \\%%x\%%y
            if exist \\%%x\%%y (echo Shared) else (echo Not Shared)
       )
    )
    

    【讨论】:

    • 我修改了你提到的代码,但我得到“命令的语法不正确。”
    • 也许启用延迟扩展? ss64.com/nt/setlocal.html 不确定。当我在我的网络上指定一台具有网络共享的机器时,它对我来说很好。您是否有可以测试的已知良好路径?例如\\mickey\mouse"?
    • 嵌套的 For DO 是问题所在,当我拥有嵌套结构时,我得到一个错误。
    • 这是什么版本的 Windows?如果你去掉多余的括号怎么办?例如FOR %%x IN (machine....) DO FOR %%y IN (A....) DO IF EXIST \\%%x\%%y (ECHO Shared) ELSE (ECHO Not Shared)
    【解决方案2】:

    试试这个:

    @echo off
    for %%x in ( "machine1", "machine2", "machine3" ) do (
        echo machine is %%x
        for %%y in ( "A", "B", "C", "D" ) do (
            echo share is \\%%x\%%y
        )
    )
    

    【讨论】:

      猜你喜欢
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多