中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 14:48
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教此问题如何写程序.BAT 查看 2,052 回复 11
楼 主 请教此问题如何写程序.BAT 发表于 2006-03-16 13:29 ·  中国 广东 珠海 电信
初级用户
积分 38
发帖 13
注册 2005-11-18 09:44
20年会员
UID 45443
状态 离线
情况:
本机:192.168.1.5
服务器:192.168.1.1
服务器上共享文件夹:\\192.168.1.1\out\TEST\可视化系统\HAND_Ver1.10_C
此文件夹里有个EXCEL文件,名字是HAND_Ver1.10_C.xls
我想达到的效果是,服务器的这个HAND_Ver1.10_C.xls文件是给很多人用的,但不能同时使用,因此我想当有人在用时就在此文件夹下生成一个"正在使用中....txt"的文本文件,让别人看到就不再去打开文件,当关闭文件时就删除"正在使用中....txt"文本文件.
因此我写了个BAT文件OPEN.BAT,放在\\192.168.1.1\out\TEST\可视化系统\HAND_Ver1.10_C下.代码如下:

ECHO OFF
echo 正在使用中... >> 正在使用中....txt
HAND_Ver1.10_C.xls
del 正在使用中....txt

问题如下:运行时显示找不到文件,或还有其他问题,我忘记了
但我把所有东西都拷贝到本机上运行,一切都正常,如我所想的.关键是我想要在服务器上实行,注我有权限在服务器建立文件,也不想更改服务器的文件夹共享名或路径,请高手帮忙解决.
怎么写此BAT

[ Last edited by ncow on 2006-3-16 at 13:30 ]
2 发表于 2006-03-16 14:19 ·  中国 北京 顺义区 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
20年会员
UID 43784
来自 北京
状态 离线
有这么麻烦吗?谁说XLS文件不能同时使用,不就是EXCEL共享吗?可以多人共用一个表格,一起改都可以,你先用有完全控制这个表格的人打开这个文件然后共享工作薄就可以多人共用一个文件了,而且可以随时刷新
3 发表于 2006-03-16 14:36 ·  中国 广东 广州 白云区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
不如干脆将那个文件夹的共享用户数限制为1个,那么无论何时,能访问这个文件夹的都只有一个人,省下很多麻烦。

要设置共享用户数,Win2000/2003都可以轻松设置,XP Professioanl的话就要在文件夹选项里取消“使用简单文件共享”。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
4 发表于 2006-03-16 14:58 ·  中国 广东 珠海 电信
初级用户
积分 38
发帖 13
注册 2005-11-18 09:44
20年会员
UID 45443
状态 离线
上面两位兄台的都是好方法啊,可以参考
但按2楼的说法,就要每次第一个打开的人都去操作共享工作簿,这样不好,一我这是公司使用,有些操作者不懂操作,也可能出现同时编辑同一个数据,可能会出错,又或者第一个共享了,第二个打开又去共享它等等
按3楼的说法,可能出现第二个打不开文件夹时,他就认为是网络的问题不是权限的问题,因为这些都不是懂电脑的人.

各位,能否按我说的,写出BAT啊.
5 发表于 2006-03-16 16:44 ·  中国 北京 顺义区 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
20年会员
UID 43784
来自 北京
状态 离线
看来你对EXCEL的操作很不熟悉,我说的意思就是只改一次就可以了,以后就不用了,累啊................不管了,自己解决吧,先自己操作一下在看看效果如何,我想你连试都没试过,何谈方便不方便呢.....捡破烂去了,事情太多
6 发表于 2006-03-17 09:03 ·  中国 河北 石家庄 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
我可以告诉楼主失败的原因:批处理运行时是不能以共享路径作为当前目录的,也就是说,批处理运行必须有个本机盘符作为当前盘,你直接从网上邻居的共享目录中运行批处理,它是无法创建文件的。

解决办法:将共享目录映射到本机某一个驱动器上后再运行批处理。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
7 发表于 2006-03-17 13:37 ·  中国 广东 珠海 电信
初级用户
积分 38
发帖 13
注册 2005-11-18 09:44
20年会员
UID 45443
状态 离线
驳5楼话:
我意思你也误解了,我明白只改一次就可以.我意思是如果第一个打开的人A打开时共享了,其他人打开可以修改,但当下次第一个打开时不是A而是B,那就又要B去打开共享,但问题是其他的人是不懂电脑的(我在公司使用),只知道简单的应用就可以了.

回6楼话:
我直接用网络共享地址是行的啊,不用映射硬盘,我试过可行.
echo 正在使用中... >> \\192.168.1.1\out\TEST\可视化系统\HAND_Ver1.10_C\正在使用中....txt
只不过我现在有新的问题,就是"正在使用中....txt"这个名字改为打开的那个计算机的名字,请指教
8 发表于 2006-03-17 13:53 ·  中国 北京 朝阳区 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
20年会员
UID 43784
来自 北京
状态 离线
噢,LZ发怒了,看来对我意见很大,也怪我说话没有分寸,一个公司的网络环境的不同造成了解决问题的不同,这个我也没法在继续在说下去了,只能离开了,Climbing
兄和JonePeng兄,有时间我们单聊,呵呵.............................................
9 发表于 2006-03-17 14:48 ·  中国 广东 珠海 电信
初级用户
积分 38
发帖 13
注册 2005-11-18 09:44
20年会员
UID 45443
状态 离线
不要发怒吗/
我只是想得到按我所想的答案。
大家的意见都很好,方法比我想的好,但我还是想知道我问的应怎么写,因为不单是为解决此问题,也为了学习。
谢谢指导。
10 发表于 2006-03-17 15:31 ·  中国 广东 珠海 电信
初级用户
积分 38
发帖 13
注册 2005-11-18 09:44
20年会员
UID 45443
状态 离线
原来这么写就可以得到我想要的。
set a=%computername%正在使用中.....txt
echo >> %a%

但在98系统里得不到%computername%,请问98的计算机名如何获取。
再:
if 系统是98
set a=98的计算机名正在使用中.....txt
if 系统是XP
set a=%computername%正在使用中.....txt
以上应该怎么写啊
11 发表于 2006-03-17 15:57 ·  中国 河北 石家庄 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
楼主自己在不断的探索问题的解决之道,很值得鼓励,既然如此,别人似乎也没有必要再横加干涉,楼主可以自己再努力多加尝试,我想你一定会找到解决问题的办法的。

98的系统我已经很少用了,想不出有什么可以获取计算机名的办法,但如果IP地址是固定的,用IP地址代替计算机名可以更容易实现一些。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
12 发表于 2006-03-17 16:49 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
98系统都忘记了,不过有个方法是绝对可以获得计算机名的:
通过导出注册表然后再提取出计算机名
不过个人认为没多大意义,如果要花那么大力气来写个批处理的话我宁愿选择用VBS脚本来完成。
另外98下面有pathping和nbtstat命令,我隐约记得它好象可以解析出对方主机名的,不知道用127能不能解析出自己出来,同样,我认为不值得花这大力气。

[ Last edited by 3742668 on 2006-3-17 at 16:57 ]
论坛跳转: