使用' net view'时,将计算机名称设置为变量。批量生产

时间:2014-05-28 17:14:38

标签: windows batch-file

批次时,我从这个网站获得了大部分答案,但这一次 我被卡住了。我真的不知道怎么会这样做。我希望它使用net view命令列出除了运行它的计算机之外的网络中找到的所有计算机。

net view
SET //PCUser = %pc1%

echo %pc1%

我希望程序在列表中列出个人电脑名称,这样它一次可以做多个。

echo %pc1%
echo %pc2%
echo %pc3%

然后将它们写入txt文件,以便下次运行时,它将读取txt文件中的名称,并排除它之前找到的所有计算机。

1 个答案:

答案 0 :(得分:0)

@echo off

    setlocal enableextensions enabledelayedexpansion

    set "alreadyDone=%~dp0\alreadyDone.txt"
    if not exist "%alreadyDone%" > "%alreadyDone%" echo(### List of processed computers ###

    set "counter=0"
    for /f %%a in (
        'net view ^| findstr /b /c:"\\\\" ^| findstr /g:"%alreadyDone%" /v'
    ) do (

        set /a "counter+=1"
        set "pc!counter!=%%a"

        >> "%alreadyDone%" echo(%%a
    )

    set pc

    endlocal

这使用文件来存储已处理的pc列表。此列表用作字符串的来源,因此在每次调用findstr中都可以过滤从net view

中检索到的计算机列表

%counter%用于增加将保存计算机名称的变量的名称。在for循环的每次迭代中,它都会递增,并为新变量分配检索到的值。

在循环结束时,set命令用于回显控制包含计算机名称的已定义pc...变量列表。