复制代码
- REM code by youxi01@windows_2000
- @echo off
- title 远程开启共享
- set /a num=1
- :start
- cls
- echo =========================批处理远程开启共享==============================
- echo.
- echo 1、查看程序说明
- echo 2、直接运行程序
- echo 3、退出程序
- echo.
- echo 沉沦天子:请勿用于不法途径!
- echo --------------------------------------------------------------------------
- set /p goto=你的选择:
- if '%goto%'=='1' goto :Introduction
- if '%goto%'=='2' (goto :TestRemoteHost) else goto :exit
- :Introduction
- cls
- echo ================================程序说明=================================
- echo.
- echo 1、本程序可以远程开启硬盘共享(依赖ipc$);
- echo.
- echo 2、本程序由原作品(见:http://youxi01.blogchina.com/1415583.html)修改而来,
- echo 而原作品的编写参照了铁血的作品(txtelnet.bat)。
- echo 对比旧作品,新作品的优点体现在:①程序由单一文件组成,不会形成其它文
- echo 件;②源程序易读性要高;③使用简单。
- echo.
- goto :over
- **********************************************************************
- 【注释】以下程序模块,检测主机是否是活动的。
- 用ping命令发送一个数据包,并将返回结果发送给find,如果结果中
- 包含有“from”则表明主机是活动的,否则显示主机不存在。
- ***********************************************************************
- :TestRemoteHost
- echo.
- echo ===========================检查主机是否活动?==============================
- set /p RemoteHost=请输入主机名称或IP:
- ping %RemoteHost% -n 1 -w 2|find "from">nul ||cls && echo 远程主机不存在。&& goto :over
- echo.
- echo 远程主机是活动的。
- goto :ConnectToRemoteHost
- **********************************************************************
- 【注释】以下程序模块,用来检测ipc开放与否。
- 先用命令net use \\[RemoteComputer]\ipc$ [pass] /user:[user]
- 命令检测是否可以进行ipc连接,并将结果传递给find命令,如果发现有“成功”
- 字样,说明连接成功,否则,清除文字,显示错误。
- ***********************************************************************
- :ConnectToRemoteHost
- echo ===========================检查主机是否开放ipc$?===========================
- echo.
- set /p user=请输入用户名:
- set /p pass=请输入密码:
- net use \\%RemoteHost%\ipc$ %pass% /user:%user%|find "成功">nul ||cls && echo ipc$连接发生错误。&& goto :over
- echo.
- echo ipc$连接成功
- echo 正在设置,请稍等...
- echo -----------------------------------------------------------------------------
- goto :ProcDelay
- **********************************************************************
- 【注释】以下程序模块,实现等待的功能,等待4秒。
- 先取一个时间(秒数)将之保存在%start%中,程序运行时间保存为%now%
- 用一个if条件,实现循环。
- ***********************************************************************
- :ProcDelay
- for /f "tokens=3 delims=:." %%i in ("%time%") do set /a start=%%i
- :procwaitloop
- for /f "tokens=3 delims=:." %%i in ("%time%") do set /a now=%%i
- set /a diff=%now%-%start%
- if %diff% LSS 4 goto :procwaitloop
- goto :GetTime
- **********************************************************************
- 【注释】首先,利用net time命令设置本地时间与网络时间同步,并将
- 当前时间的小时和分钟数分别保存到hour和minute变量。
- ***********************************************************************
- :GetTime
- net time \\127.0.0.1 /set /y > nul
- for /f "tokens=1,2 delims=:" %%i in ("%time%") do set /a hour=%%i && set /a minute=%%j
- echo 远程主机现在的时刻为:%hour%:%minute%
- goto :OpenShare
- **********************************************************************
- 【注释】利用at命令定时开启共享。
- ***********************************************************************
- :OpenShare
- set /a Rminute=%minute%+1
- at \\%RemoteHost% %hour%:%Rminute% net share c$=c:>nul & if errorlevel 1 echo C盘共享失败
- at \\%RemoteHost% %hour%:%Rminute% net share d$=d:>nul & if errorlevel 1 echo D盘共享失败
- at \\%RemoteHost% %hour%:%Rminute% net share admin$>nul & if errorlevel 1 echo Admin共享失败
- @net use * /del /y>nul
- :over
- echo =================批处理远程开启共享======================================
- echo 1、继续
- echo 2、退出
- echo.
- set /p goto=是否继续?
- if '%goto%'=='2' (goto :exit) else goto :start
- :exit
欢迎光临 批处理之家 (http://www.bathome.net/) | Powered by Discuz! 7.2 |