批次时,我从这个网站获得了大部分答案,但这一次 我被卡住了。我真的不知道怎么会这样做。我希望它使用net view命令列出除了运行它的计算机之外的网络中找到的所有计算机。
net view
SET //PCUser = %pc1%
echo %pc1%
我希望程序在列表中列出个人电脑名称,这样它一次可以做多个。
echo %pc1%
echo %pc2%
echo %pc3%
然后将它们写入txt
文件,以便下次运行时,它将读取txt
文件中的名称,并排除它之前找到的所有计算机。
答案 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...
变量列表。