Board logo

标题: XP_SP2能用WIN98下DOS 不能使用 [打印本页]

作者: 635000     时间: 2006-9-1 00:15    标题: XP_SP2能用WIN98下DOS 不能使用

::XP_SP2能写内容到文件而WIN98下DOS 不能使用echo.82#>%MachineFileName%
::XP_SP2的"for"有参数可选,  而WIN98下DOS 不能选
::求高手能否修改为WIN98下DOS能用
echo off
  set path=C:\BAT\
  set 日期_1=060805
  set MachineFileName=C:\BAT\machine_no.txt

   if not exist %MachineFileName%  echo.82#>%MachineFileName%
   for /f %%b in (%MachineFileName%) do set machine_no=%%b
     set machine_no#=0
     for %%c in (01#,02#,03#,04#,05#,06#,07#,08#,09#,10#,11#,12#,13#,14#,15#,16#,17#,18#,19#,20#,21#,22#,23#,24#,25#,26#,27#,28#,29#,30#,31#,32#,33#,34#,35#,36#,37#,38#,39#,40#,41#,42#,43#,44#,45#,46#,47#,48#,49#,50#,51#,52#,53#,54#,55#,56#,57#,58#,59#,60#,61#,62#,63#,64#,65#,66#,67#,68#,69#,70#,71#,72#,73#,74#,75#,76#,77#,78#,79#,80#,81#) do if  %machine_no%==%%c set machine_no#=1
     if  %machine_no#%==1  goto skip_1   
     if  %machine_no#%==0  goto skip1
:fanhui
     for /f %%b in (%MachineFileName%) do set machine_no=%%b
     set machine_no#=0
     for %%c in (01#,02#,03#,04#,05#,06#,07#,08#,09#,10#,11#,12#,13#,14#,15#,16#,17#,18#,19#,20#,21#,22#,23#,24#,25#,26#,27#,28#,29#,30#,31#,32#,33#,34#,35#,36#,37#,38#,39#,40#,41#,42#,43#,44#,45#,46#,47#,48#,49#,50#,51#,52#,53#,54#,55#,56#,57#,58#,59#,60#,61#,62#,63#,64#,65#,66#,67#,68#,69#,70#,71#,72#,73#,74#,75#,76#,77#,78#,79#,80#,81#) do if  %machine_no%==%%c set machine_no#=1
     if %machine_no#%==1  goto skip_3
   :skip1
     echo "现在的是:%machine_no%"   
     Set /p input= "请输入机台号:(01~82之间)机台号+回车键:" \
     del %MachineFileName%     
     echo.%input%#> %MachineFileName%
     goto fanhui
       
:skip_1     
    echo "你的QC机台号是%machine_no%,是否正确?"
      set /p input= "正确:回车键; 错误时:(01~82之间)机台号+回车键!" \
      if %input%=="" GOTO skip_2
      if not %input%=="" GOTO skip2
:skip_3
      echo "你输的是:%input%#机台号"
      if %machine_no#%==0 set /p input= "正确:回车键; 错误时:(01~82之间)机台号+回车键!" \
      set machine_no=%input%#
     :: echo %machine_no%      
      if %machine_no#%==1 GOTO skip_2
      if %input%=="" GOTO skip_2
      
  :skip2
      del %MachineFileName%
      echo.%input%#> %MachineFileName%
      for /f %%b in (%MachineFileName%) do set machine_no=%%b
      set machine_no#=0  
      for %%c in (01#,02#,03#,04#,05#,06#,07#,08#,09#,10#,11#,12#,13#,14#,15#,16#,17#,18#,19#,20#,21#,22#,23#,24#,25#,26#,27#,28#,29#,30#,31#,32#,33#,34#,35#,36#,37#,38#,39#,40#,41#,42#,43#,44#,45#,46#,47#,48#,49#,50#,51#,52#,53#,54#,55#,56#,57#,58#,59#,60#,61#,62#,63#,64#,65#,66#,67#,68#,69#,70#,71#,72#,73#,74#,75#,76#,77#,78#,79#,80#,81#) do if  %machine_no%==%%c set machine_no#=1   
        
      if %machine_no#%==0 goto skip_3
:skip_2
作者: NaturalJ0     时间: 2006-9-1 00:52
怎么个不能用法?中文无法显示?这个还能加载中文支持。不过有些功能纯 DOS 没有的。比如 SET /P 。你最好用 /? 去 DOS 下查查你所用到的所有参数。

[ Last edited by NaturalJ0 on 2006-9-1 at 00:55 ]
作者: 635000     时间: 2006-9-1 22:16    标题: XP_SP2能用WIN98下DOS 不能使用

就是提示系统错误.可用第三方软件.有没有推荐的?
作者: 635000     时间: 2006-9-3 09:03    标题: XP_SP2能用WIN98下DOS 不能使用

首先感谢"NaturalJ0兄"的回复.
english太差了,提示是语法错误.
再此表示歉意.
不过原问题还是没有解决啊.
作者: NaturalJ0     时间: 2006-9-3 09:25
纯DOS下SET不能用/P,FOR 也没有/F。这些功能你都要用其它方法来实现。
作者: 635000     时间: 2006-9-6 21:43
首先感谢NaturalJ0 "NaturalJ0兄"的回复.
现在我用带参数输入%machine_no%,折中的办法.
听说有inpu这个第三方软件可以提示输入信息.但没有找到,有不会用啊.
作者: NaturalJ0     时间: 2006-9-7 00:47
实在不好意思,第三方软件我也从没用过。还是问问其他用过的人吧。
我以前也有过输入和读取文件,但因为我当时要求的读写功能比较简单,不是复杂的读写功能,所以自己用 C 写了个 EXE 来实现功能的,在 BAT 中调用 EXE 。