![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 15:27 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教此问题如何写程序.BAT |
| 可打印版本 2,214 / 11 |
| 第1楼 ncow | 发表于 2006-03-16 13:29 |
| 初级用户 发帖 13 积分 38 | |
|
请教此问题如何写程序.BAT 情况:
本机: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楼 bagpipe | 发表于 2006-03-16 14:19 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
有这么麻烦吗?谁说XLS文件不能同时使用,不就是EXCEL共享吗?可以多人共用一个表格,一起改都可以,你先用有完全控制这个表格的人打开这个文件然后共享工作薄就可以多人共用一个文件了,而且可以随时刷新
|
|
| 第3楼 JonePeng | 发表于 2006-03-16 14:36 |
| 金牌会员 发帖 1,883 积分 4,562 来自 广东广州 | |
|
不如干脆将那个文件夹的共享用户数限制为1个,那么无论何时,能访问这个文件夹的都只有一个人,省下很多麻烦。
要设置共享用户数,Win2000/2003都可以轻松设置,XP Professioanl的话就要在文件夹选项里取消“使用简单文件共享”。 |
|
| 第4楼 ncow | 发表于 2006-03-16 14:58 |
| 初级用户 发帖 13 积分 38 | |
|
上面两位兄台的都是好方法啊,可以参考
但按2楼的说法,就要每次第一个打开的人都去操作共享工作簿,这样不好,一我这是公司使用,有些操作者不懂操作,也可能出现同时编辑同一个数据,可能会出错,又或者第一个共享了,第二个打开又去共享它等等 按3楼的说法,可能出现第二个打不开文件夹时,他就认为是网络的问题不是权限的问题,因为这些都不是懂电脑的人. 各位,能否按我说的,写出BAT啊. |
|
| 第5楼 bagpipe | 发表于 2006-03-16 16:44 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
看来你对EXCEL的操作很不熟悉,我说的意思就是只改一次就可以了,以后就不用了,累啊................不管了,自己解决吧,先自己操作一下在看看效果如何,我想你连试都没试过,何谈方便不方便呢.....捡破烂去了,事情太多
|
|
| 第6楼 Climbing | 发表于 2006-03-17 09:03 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
我可以告诉楼主失败的原因:批处理运行时是不能以共享路径作为当前目录的,也就是说,批处理运行必须有个本机盘符作为当前盘,你直接从网上邻居的共享目录中运行批处理,它是无法创建文件的。
解决办法:将共享目录映射到本机某一个驱动器上后再运行批处理。 |
|
| 第7楼 ncow | 发表于 2006-03-17 13:37 |
| 初级用户 发帖 13 积分 38 | |
|
驳5楼话:
我意思你也误解了,我明白只改一次就可以.我意思是如果第一个打开的人A打开时共享了,其他人打开可以修改,但当下次第一个打开时不是A而是B,那就又要B去打开共享,但问题是其他的人是不懂电脑的(我在公司使用),只知道简单的应用就可以了. 回6楼话: 我直接用网络共享地址是行的啊,不用映射硬盘,我试过可行. echo 正在使用中... >> \\192.168.1.1\out\TEST\可视化系统\HAND_Ver1.10_C\正在使用中....txt 只不过我现在有新的问题,就是"正在使用中....txt"这个名字改为打开的那个计算机的名字,请指教 |
|
| 第8楼 bagpipe | 发表于 2006-03-17 13:53 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
噢,LZ发怒了,看来对我意见很大,也怪我说话没有分寸,一个公司的网络环境的不同造成了解决问题的不同,这个我也没法在继续在说下去了,只能离开了,Climbing
兄和JonePeng兄,有时间我们单聊,呵呵............................................. |
|
| 第9楼 ncow | 发表于 2006-03-17 14:48 |
| 初级用户 发帖 13 积分 38 | |
|
不要发怒吗/
我只是想得到按我所想的答案。 大家的意见都很好,方法比我想的好,但我还是想知道我问的应怎么写,因为不单是为解决此问题,也为了学习。 谢谢指导。 |
|
| 第10楼 ncow | 发表于 2006-03-17 15:31 |
| 初级用户 发帖 13 积分 38 | |
|
原来这么写就可以得到我想要的。
set a=%computername%正在使用中.....txt echo >> %a% 但在98系统里得不到%computername%,请问98的计算机名如何获取。 再: if 系统是98 set a=98的计算机名正在使用中.....txt if 系统是XP set a=%computername%正在使用中.....txt 以上应该怎么写啊 |
|
| 第11楼 Climbing | 发表于 2006-03-17 15:57 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
楼主自己在不断的探索问题的解决之道,很值得鼓励,既然如此,别人似乎也没有必要再横加干涉,楼主可以自己再努力多加尝试,我想你一定会找到解决问题的办法的。
98的系统我已经很少用了,想不出有什么可以获取计算机名的办法,但如果IP地址是固定的,用IP地址代替计算机名可以更容易实现一些。 |
|
| 第12楼 3742668 | 发表于 2006-03-17 16:49 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
98系统都忘记了,不过有个方法是绝对可以获得计算机名的:
通过导出注册表然后再提取出计算机名 不过个人认为没多大意义,如果要花那么大力气来写个批处理的话我宁愿选择用VBS脚本来完成。 另外98下面有pathping和nbtstat命令,我隐约记得它好象可以解析出对方主机名的,不知道用127能不能解析出自己出来,同样,我认为不值得花这大力气。 [ Last edited by 3742668 on 2006-3-17 at 16:57 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |