Board logo

标题: [求助]急!!!请高手帮忙 [打印本页]

作者: xiaohami     时间: 2008-4-16 11:17    标题: [求助]急!!!请高手帮忙

我下了一个软件,有功能限制,有一个程序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

谢谢各位了
作者: abcd     时间: 2008-4-16 13:54
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%格式。

楼主还是去熟悉一下这些基本命令的用法吧。
作者: xiaohami     时间: 2008-4-16 16:16    标题: 感谢帮助我的朋友!!!

昨天做了一天的FOR循环今天经高手一指点,终于成了,我是菜鸟,希望新手和我一样多多学习,DOS这个东西太有意思了