中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批处理搜索局域网共享的文件
作者:
标题: [求助]批处理搜索局域网共享的文件 上一主题 | 下一主题
ajon911
初级用户





积分 49
发帖 24
注册 2007-12-3
状态 离线
『楼 主』:  [求助]批处理搜索局域网共享的文件

此处高人很多!!哪位肯站出来解决一下难题?

我想用批处理搜索局域网内同一类型的所有共享文件,并把搜到的信息保存为文本,
该如何实现?
谢谢!!

2008-4-11 12:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huajinghua
初级用户





积分 54
发帖 19
注册 2008-2-24
状态 离线
『第 2 楼』:  

用我的《多功能批处理》吧

2008-4-11 14:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ajon911
初级用户





积分 49
发帖 24
注册 2007-12-3
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by huajinghua at 2008-4-11 02:04 PM:
用我的《多功能批处理》吧

无语!!!!

[ Last edited by ajon911 on 2008-4-13 at 11:00 AM ]

2008-4-13 10:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
p1509101
中级用户

海浪人生


积分 206
发帖 103
注册 2007-7-4
状态 离线
『第 4 楼』:  


@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=扫描完成,是否浏览共享资源[y/n]
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 ]

2008-4-13 15:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: