中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-15 23:45
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 这样的批处理怎么写! 查看 1,460 回复 3
楼 主 这样的批处理怎么写! 发表于 2004-12-15 00:00 ·  中国 宁夏 银川 电信
初级用户
积分 118
发帖 5
注册 2004-08-17 00:00
UID 30273
性别 男
状态 离线
系统:adv win2k
实现目标:局域网两计算机之间的文件实现同步。然后运行同步后的文件
计算机A上放置了文件在目录aaa下xxx.exe,并设置了共享。
计算机B可以登陆计算机A(用户名和密码)。
计算机B上有一个目录BBB下有xxx.exe文件
问题:
现在已经在计算机B上实现自动登陆计算机A并把共享目录映射为计算机B上的一个盘符R:
现在想通过文件比较。只要计算机A上的文件和本地计算机B上的文件不一样就执行copy(日期不一样就可以、还有就是如果本地计算机上没有此文件也拷贝,都是xxx.exe)拷贝完成以后执行xxx.exe。
现在就缺少一个批处理。
如果有了批处理就可以+win的计划任务完成全自动了。
哪位仁兄給写一下批处理。在下谢过了
用fc 和 comp就可以吗!劳驾写出批处理。----------
----------
现在实现了用语句for可以把文件的日期显示出来就是用for /f "skip=3" %a IN ('dir e:\a\xxx.exe' do @if exist %a echo %~ta
可是怎么去比较是不是用set命令。可是我写在批处理里面怎么这些命令就不对了。who知道。
老是报错。可是在命令行下是正常的。
郁闷~~~
2 发表于 2004-12-16 00:00 ·  中国 宁夏 银川 电信
初级用户
积分 118
发帖 5
注册 2004-08-17 00:00
UID 30273
性别 男
状态 离线
再接再厉。我终于成功了。
就是为什么写到批处理里面无法执行。
在命令行下可以。为什么阿。
@echo off
if EXIST xxx.exe goto cmp
xcopy r:\aaa\xxx.exe
:cmp
for /f "skip=3" %%a IN ('dir r:\aaa\xxx.exe' do @if exist %%a set var1=%%~ta
for /f "skip=3" %%a IN ('dir xxx.exe' do @if exist %%a set var2=%%~ta
if %var1%==%var2% do goto end
copy r:\aaa\xxx.exe /yy
xxx.exe
:end
----------------
怎么样才可是if能用因为var1中间有空格。


3 发表于 2004-12-16 00:00 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
Re 表情:
  解决var的空格问题,可以在var1,var2的两侧加上引号,如同
if "%var1%"=="%var2%" do goto end
此方法不适用于win9x/dos6.xx(在其环境下,需要先输出至文件中,再用fc+find判断)。
另:你的语句中的do似是多余,改为以下形式试试:
if "%var1%"=="%var2%" goto end
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
4 发表于 2004-12-17 00:00 ·  中国 宁夏 银川 电信
初级用户
积分 118
发帖 5
注册 2004-08-17 00:00
UID 30273
性别 男
状态 离线
谢谢楼上的。自己真苯阿
论坛跳转: