中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-07 11:42
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]共享方面的批处理 查看 1,951 回复 15
楼 主 [原创]共享方面的批处理 发表于 2007-04-16 12:31 ·  中国 上海 长宁区 电信
初级用户
积分 38
发帖 15
注册 2007-04-13 20:38
19年会员
UID 85037
性别 男
状态 离线
第一次写 呵呵 见笑咯
里面有个限制次数的功能 是找到的

文件共享



@echo off
title 文件共享
mode con: cols=80 lines=30
if exist %windir%\netshare.txt (goto rep) else echo 100>%windir%\netshare.txt
:rep
for /f "tokens=1" %%a in (%windir%\netshare.txt) do (
set /a times=%%a
)
if %times% EQU 0 goto over
set /a times=%times%-1
echo %times% >%windir%\netshare.txt
cls

:opt
cls
@echo *******************************************************************************
@echo ┼─────────┼ 现在时间:
@echo │  ˊ     、 │ %date% %time:~0,2%点%time:~3,2%分%time:~6,2%秒
@echo │' .  ˊ  ˋ﹫. │
@echo │ ╭⌒╮   `ˊ │
@echo │ˊ( .' ) '    │ 穿別人的鞋,走自己的路,讓他們找去吧!
@echo │ ﹏_)(﹏.   │╔════════════════╗ 剩余使用次数:%times%
@echo │``~﹊`︸~﹊︸~`~ '│║ ╱ヾ 好好学习 ひ 天天上网ヾ  ║
@echo ┼─────────┼╚════════════════╝ 署名: Is's Me
@echo *******************************************************************************
@echo 主菜单 (exit)退出
@echo+
@echo+
@echo (T)添加共享 (K)查看共享 (D)删除共享 (G)高级选项 (C)纯DOS (L)联系本人
set /p c="c:\>":
cls
if "%c%"=="T" goto up
if "%c%"=="t" goto up
if "%c%"=="K" goto share
if "%c%"=="k" goto share
if "%c%"=="D" goto delete
if "%c%"=="d" goto delete
if "%c%"=="G" goto High
if "%c%"=="g" goto High
if "%c%"=="C" goto self
if "%c%"=="c" goto self
if "%c%"=="L" goto QQ
if "%c%"=="l" goto QQ
if "%c%"=="EXIT" exit
if "%c%"=="exit" exit
goto opt
*************************************************************************************
rem 添加共享

:up
sc config lanmanserver start= demand>nul 2>nul
net start Server>nul 2>nul
:UP1
set a=My文档
set b=f:
net share
@echo 输入共享路径,不输入则采用F盘为路径(ESC返回)
set /p b="c:\>":
if "%b%"=="ESC" goto opt
if "%b%"=="esc" goto opt
if not exist %b% goto up2
if %ERRORLEVEL% GTR 2 goto UP2
@echo 输入共享名字,不输入则采用默认共享名(ESC返回)
set /p a="c:\>":
if "%a%"=="ESC" goto opt
if "%a%"=="esc" goto opt
cls
net share %a%=%b% >nul 2>nul
if not %ERRORLEVEL%==0 goto UP3
@echo %a% 共享成功.路径为: %b%
goto up1
:up2
cls
@echo 输入的路径有误,请重新输入。
goto up1
:UP3
cls
@echo 共享失败,可能是共享名"%a%"重复.
goto up1
*************************************************************************************
rem 查看共享

:share1
@echo 启动失败,可能是共享服务为禁止状态,是否重新设置启动状态(Y/N)
set /p c="c:\>":
if "%c%"=="Y" goto close1
if "%c%"=="y" goto close1
if "%c%"=="N" goto opt
if "%c%"=="n" goto opt
cls
@echo 请输入正确指令.
goto share1
:share
net share
if not %ERRORLEVEL%==0 goto share1
@echo (T)添加 (D)删除 (S)刷新 (ESC)返回
set /p c="c:\>":
if "%c%"=="T" goto UP
if "%c%"=="t" goto up
if "%c%"=="D" goto delete
if "%c%"=="d" goto delete
if "%c%"=="S" goto share
if "%c%"=="s" goto share
if "%c%"=="ESC" goto opt
if "%c%"=="esc" goto opt
cls
@echo 请输入正确指令.
goto share
*************************************************************************************
rem 删除共享

:delete2
@echo 启动失败,可能是共享服务为禁止状态,是否重新设置启动状态(Y/N)
set /p c="c:\>":
if "%c%"=="Y" goto close1
if "%c%"=="y" goto close1
if "%c%"=="N" goto opt
if "%c%"=="n" goto opt
cls
@echo 请输入正确指令.
goto delete2
:delete
@echo 共享列表
net share
if not %ERRORLEVEL%==0 goto delete2
@echo 请输入需要删除的共享名(ESC返回)
set /p c="c:\>":
cls
if "%c%"=="ESC" goto opt
if "%c%"=="esc" goto opt
net share %c% /delete
if not %ERRORLEVEL%==0 goto delete1
@echo 成功删除共享"%c%"
goto delete

:delete1
@echo 删除失败,可能是共享名"%c%"不存在.
goto delete


*************************************************************************************
rem 高级选项

:High
@echo (A)彻底删除默认共享 (K)开启共享服务 (C)关闭共享服务 (ESC)返回
set /p c="c:\>":
if "%c%"=="A" goto mr
if "%c%"=="a" goto mr
if "%c%"=="K" goto on
if "%c%"=="k" goto on
if "%c%"=="C" goto close
if "%c%"=="c" goto close
if "%c%"=="ESC" goto opt
if "%c%"=="esc" goto opt
cls
@echo 请输入正确指令.
goto High
----------------------------------------------------------
:mr
net start Server>nul 2>nul
@echo 删除默认共享目录.....
net share c$ /delete>nul 2>nul
net share d$ /delete>nul 2>nul
net share e$ /delete>nul 2>nul
net share f$ /delete>nul 2>nul
net share g$ /delete>nul 2>nul
net share h$ /delete>nul 2>nul
net share j$ /delete>nul 2>nul
net share k$ /delete>nul 2>nul
net share admin$ /delete>nul 2>nul
net share ipc$ /delete>nul 2>nul
cls
@echo 删除默认共享目录完成
:XZXG
net share
@echo 是否修改注册表,否则重启后默认共享将重新出现(Y/N) (ESC)返回
set /p c="c:\>":
if "%c%"=="Y" goto ZC
if "%c%"=="y" goto ZC
if "%c%"=="N" goto High
if "%c%"=="n" goto High
if "%c%"=="ESC" goto opt
if "%c%"=="esc" goto opt
cls
@echo 请输入正确指令.
goto XZXG
:ZC
@echo 准备生成临时注册表文件......
echo Windows Registry Editor Version 5.00>delshare.reg
echo

>>delshare.reg
echo "AutoShareWks"=dword:00000000>>delshare.reg
echo "AutoShareServer"=dword:00000000>>delshare.reg
echo 运行注册表临时文件.....
regedit /s delshare.reg
echo 删除注册表临时文件......
del /f/q/s/a delshare.reg
echo 注册表修改完成.
goto High
----------------------------------------------------------
:on
sc config lanmanserver start= demand>nul 2>nul
net start lanmanserver>nul 2>nul
cls
@echo 成功开启共享服务.
goto High
----------------------------------------------------------
:close
net stop Server /y>nul 2>nul
cls
@echo 成功关闭共享服务.
:close1
@echo 更改共享服务下次启动的启动类型.默认为手动.
@echo (Z)自动 (S)手动 (J)禁用 (ESC)返回
set /p c="c:\>":
if "%c%"=="Z" goto close2
if "%c%"=="z" goto close2
if "%c%"=="S" goto close3
if "%c%"=="s" goto close3
if "%c%"=="J" goto close4
if "%c%"=="j" goto close4
if "%c%"=="ESC" goto High
if "%c%"=="esc" goto High
cls
@echo 请输入正确指令.
goto close1

:close2
sc config lanmanserver start= auto>nul 2>nul
cls
@echo 成功更改为自动状态.下次开机自动开启服务.
goto High

:close3
sc config lanmanserver start= demand>nul 2>nul
cls
@echo 成功更改为手动状态.下次必须手动启动的服务.
goto High

:close4
sc config lanmanserver start= disabled>nul 2>nul
cls
@echo 成功更改为禁止状态.要启动禁用的服务,应将启动类型更改为其他值。
goto High

*************************************************************************************
rem 纯DOS操作

:self
@echo 请输入纯DOS命令. (exit)返回
Start /b/wait cmd.exe
goto opt


*************************************************************************************
rem 联系本人


:QQ
start /b tencent://message/?uin=83909654
goto opt
*************************************************************************************
rem 使用次数

:over
cls
@echo 你已经达到使用次数,5秒后自动退出.
ping 127.0.0.1 -n 6 >nul 2>nul
exit

*************************************************************************************
2 发表于 2007-04-16 21:20 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
if exist %windir%\netshare.txt (goto rep) else echo 100>%windir%\netshare.txt
:rep
for /f "tokens=1" %%a in (%windir%\netshare.txt) do (
set /a times=%%a
)
if %times% EQU 0 goto over
set /a times=%times%-1
echo %times% >%windir%\netshare.txt

把这段删掉就没有限制次数了.
3 发表于 2007-04-16 21:21 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
if "%c%"=="T" goto up
if "%c%"=="t" goto up
if "%c%"=="K" goto share
if "%c%"=="k" goto share
if "%c%"=="D" goto delete
if "%c%"=="d" goto delete
if "%c%"=="G" goto High
if "%c%"=="g" goto High
if "%c%"=="C" goto self
if "%c%"=="c" goto self
if "%c%"=="L" goto QQ
if "%c%"=="l" goto QQ
if "%c%"=="EXIT" exit
if "%c%"=="exit" exit

这段可以if /i
4 发表于 2007-04-16 21:23 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
原创鼓励下;
嘻嘻
5 发表于 2007-04-16 21:26 ·  中国 广东 广州 联通
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
19年会员
UID 82819
性别 男
状态 离线
if %times% EQU 0 goto over

没那么麻烦,这一句就够了。

然后就是关于共享,作者还理解得不够。
知,不觉多。不知,乃求知
6 发表于 2007-04-17 00:05 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 866
发帖 415
注册 2005-12-04 11:19
20年会员
UID 46459
状态 离线
是原创吗,支持一下。
7 发表于 2007-04-17 02:56 ·  中国 上海 长宁区 电信
初级用户
积分 38
发帖 15
注册 2007-04-13 20:38
19年会员
UID 85037
性别 男
状态 离线
呵呵 只有开始那个限制次数的功能是看别人的 其他自己写的 没做过简化
我想问下 怎么样把 下面这句话 做成变量 因为太长了而且中间还换行 还有空格 我自己没想出来 前提是不从其他文件里导入

@echo *******************************************************************************
@echo ┼─────────┼ 现在时间:
@echo │  ˊ     、 │ %date% %time:~0,2%点%time:~3,2%分%time:~6,2%秒
@echo │' .  ˊ  ˋ﹫. │
@echo │ ╭⌒╮   `ˊ │
@echo │ˊ( .' ) '    │ 穿別人的鞋,走自己的路,讓他們找去吧!
@echo │ ﹏_)(﹏.   │╔════════════════╗ 剩余使用次数:%times%
@echo │``~﹊`︸~﹊︸~`~ '│║ ╱ヾ 好好学习 ひ 天天上网ヾ  ║
@echo ┼─────────┼╚════════════════╝ 署名: Is's Me
@echo *******************************************************************************
8 发表于 2007-04-17 05:43 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 866
发帖 415
注册 2005-12-04 11:19
20年会员
UID 46459
状态 离线
带有回车的这么长的句子能赋值给一个变量吗?不行吧。
9 发表于 2007-04-17 06:08 ·  中国 河南 新乡 联通
初级用户
积分 58
发帖 27
注册 2007-03-21 06:36
19年会员
UID 82427
性别 男
状态 离线
支持一下,不错第
玄之又玄
众妙之门
10 发表于 2007-04-17 06:45 ·  中国 北京 电信
新手上路
积分 16
发帖 6
注册 2007-03-19 04:01
19年会员
UID 82201
性别 男
状态 离线
原创啊,支持楼主。
不过添加共享功能好像不起作用。有时输入完路径没有什么提示,有时提示共享失败。
但我在windows里手动添加共享是可以的。
11 发表于 2007-04-17 09:11 ·  中国 江苏 常州 电信
新手上路
积分 10
发帖 5
注册 2007-01-21 07:42
19年会员
UID 77214
性别 男
状态 离线
kan budong
12 发表于 2007-04-17 09:14 ·  中国 广东 广州 海珠区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
19年会员
UID 82819
性别 男
状态 离线
TO 7楼:

其实做成一个call就行了。。

用不着把那段代码写成变量的。。。

需要时调用
知,不觉多。不知,乃求知
13 发表于 2007-04-18 00:29 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
写简单点多好哦
14 发表于 2007-04-18 01:17 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
思路清晰,人性化设计,很细心,不过不是在语法上,楼主跟我刚开始一样,知道的多,但都不精通,没有深入去发掘一些命令的功能
15 发表于 2007-04-19 03:15 ·  中国 上海 长宁区 电信
初级用户
积分 38
发帖 15
注册 2007-04-13 20:38
19年会员
UID 85037
性别 男
状态 离线
呵呵 输入好共享路径没反映应该不会出现 一般会出现共享失败 可能是路径里面带了空格 可以加引号 呵呵 写了
我写这个东西呢 是因为我在网吧 禁止了很多功能 要共享东西 一般情况还要去 开工具, 开启服务 。。觉得麻烦 所以就写了这个
论坛跳转: