中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 03:30
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]急!!!请高手帮忙
可打印版本  884 / 2
第1楼 xiaohami 发表于 2008-04-16 11:17
新手上路 发帖 2 积分 8
[求助]急!!!请高手帮忙
我下了一个软件,有功能限制,有一个程序MADE.MEX,一个数据文件,下面有民i个madei.dat 文件,我想要一个dos FOR代码实现,以下功能.

1.自动查找到madei.dat的个数,(或者让人输入个数)
2.将made1.dat ren为made.dat
3.启动made.exe
4.关闭made.exe
4.将made.dat ren为made1.dat
5.将made2.dat ren为made.dat
..............................
将mede.dat ren为madei.dat
关闭

这是我写的,请指正错误

@echo off
mode con lines=20 cols=50
color 1f
title made辅助工具
setlocal enabledelayedexpansion
set /a var=1
cls
set /a choice=
set /p choice= 请输入你的made*.dat个数(退出请直接回车):
echo.
echo 每次8个站完成后,你只要按任意键即可.
echo.
for /f %var% in (1,1.%choice%)
do
(
echo ------=== made%var%===------
@ren made%var%.dat made.dat
start made.exe
pause
@taskkill /im made.exe /f
call :ProcDelay 300
@ren made.dat made%var%.dat
set /a var=%var%+1
)
echo "终于结束了!"
goto end
pause
cls
exit

:ProcDelay delayMSec_
setlocal enableextensions
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k
:_procwaitloop
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k
set /a diff_=%now_%-%start_%
if %diff_% LSS %1 goto _procwaitloop

谢谢各位了
第2楼 abcd 发表于 2008-04-16 13:54
银牌会员 发帖 739 积分 1,436
set /a var=1
cls
set /a choice=
赋值的话,直接set 就行了。不需要加/a开关的


for /f %var% in (1,1.%choice%)
do
(
echo ------=== made%var%===------
@ren made%var%.dat made.dat
start made.exe
pause
@taskkill /im made.exe /f
call :ProcDelay 300
@ren made.dat made%var%.dat
set /a var=%var%+1
)

for里面变量只能是单字符变量,而且需要写成%%i等格式,而不是%i%格式。

楼主还是去熟悉一下这些基本命令的用法吧。
第3楼 xiaohami 发表于 2008-04-16 16:16
新手上路 发帖 2 积分 8
感谢帮助我的朋友!!!
昨天做了一天的FOR循环今天经高手一指点,终于成了,我是菜鸟,希望新手和我一样多多学习,DOS这个东西太有意思了
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023