中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 03:35
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批处理搜索局域网共享的文件 查看 839 回复 3
楼 主 [求助]批处理搜索局域网共享的文件 发表于 2008-04-11 12:55 ·  中国 广东 东莞 电信
初级用户
积分 49
发帖 24
注册 2007-12-03 21:34
18年会员
UID 104583
性别 男
状态 离线
此处高人很多!!哪位肯站出来解决一下难题?

我想用批处理搜索局域网内同一类型的所有共享文件,并把搜到的信息保存为文本,
该如何实现?
谢谢!!
2 发表于 2008-04-11 14:04 ·  中国 广东 东莞 电信
初级用户
积分 54
发帖 19
注册 2008-02-24 13:37
18年会员
UID 111315
性别 男
状态 离线
用我的《多功能批处理》吧
3 发表于 2008-04-13 10:59 ·  中国 广东 东莞 电信
初级用户
积分 49
发帖 24
注册 2007-12-03 21:34
18年会员
UID 104583
性别 男
状态 离线
Originally posted by huajinghua at 2008-4-11 02:04 PM:
用我的《多功能批处理》吧


无语!!!!

[ Last edited by ajon911 on 2008-4-13 at 11:00 AM ]
4 发表于 2008-04-13 15:29 ·  中国 广西 钦州 灵山县 电信
中级用户
★★
海浪人生
积分 206
发帖 103
注册 2007-07-04 00:18
19年会员
UID 93068
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
::查找有共享的电脑
for /l %%i in (1,1,225) do (
cls&echo 正在扫描 192.168.0.1-192.168.0.225 请等待...&echo.&ping /n 1 192.168.0.%%i|find "Reply"&&net view \\192.168.0.%%i|find "命令成功完成"&&for /l %%j in (1,1,3) do echo 192.168.0.%%i>>ip.txt
)

::查看并映射相应ip的共享资源
cls
set /p choose=扫描完成,是否浏览共享资源
if not %choose%==y goto eof
for /f %%i in (ip.txt) do (
cls&echo ip为%%i的电脑上的共享资源如下:&echo.
set num=0&set choose2=&set flag=&set flag2=
::测算共享名的长度,因为有英文和中文并存,所以长度只能大概测算
for /f "skip=4 tokens=*" %%j in ('net view \\%%i') do (set /a flag+=1&if !flag!==1 call :pick %%j)
set /a line=!line!-!line!/4
::获取共享资源列表
for /f "skip=7 tokens=*" %%j in ('net view \\%%i') do (if not "%%j"=="命令成功完成。" (set /a num+=1&set str=%%j&call set str=%%str:~0,!line!%%&set "explor!num!=!str!"&set str2=!num!-----&set str2=!str2:~0,6!&echo !str2!!str!))
echo.&set /p choose2=选择一个要映射的资源:
::去掉变量最后的空格,不然在映射时会出错
call set var=%%explor!choose2!%%&call :delspace !var!
::随机选择盘符
for %%k in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,o,v,w,x,y,z) do (cd %%k: >nul 2>nul||(set /a flag2+=1&if !flag2!==1 (net use %%k: "\\%%i\!explorname!"&pause)))
)
goto eof

:pick
set line=3
set "str=%*"
:loop
if "%str:~0,1%"=="类" goto eof
set str=!str:~1!&set /a line+=1&goto loop

:delspace
set "explorname=%*"
:loop2
if not "%explorname:~-1%"=="" goto eof
set str=%explorname:~0,-1%&goto loop2

:eof
先PING看看通不通 然后再PING通的机里面扫 最后映射....

转非常P处理 WANK-OILZ版主的~~

[ Last edited by p1509101 on 2008-4-13 at 03:31 PM ]
论坛跳转: