标题: [注意]FOR Command Problem
[打印本页]
作者: defrag
时间: 2004-12-31 00:00
标题: [注意]FOR Command Problem
为什么我在MS-DOS6.22上运行"for %a in (/dear) do echo %a"时显示:
d
ear
但是我在MS-DOS7.10里运行时显示:
/dear
不会吧!!?
作者: JonePeng
时间: 2004-12-31 00:00
那个d使我想起0DH,即ASCII码的换行符(回车符),我猜6.22版将/d当成换行符来处理。
作者: defrag
时间: 2004-12-31 00:00
作者: defrag
时间: 2004-12-31 00:00
for %a in (/ucdos) do echo %a显示:ucdos
作者: JonePeng
时间: 2005-1-1 00:00
呵呵,也许“/”是6.22版的一个BUG,DOS6.22以后的版本都没有出现这种情况,连Win2000/XP的CMD里也没有,BUG被修正了。楼主真细心,不知是怎么发现该问题的?
作者: defrag
时间: 2005-1-1 00:00
我看1995年的电脑杂志的“用C语言和批处理文件实现。。。。的一次性转换”时我抄了一下批处理z再改一下注视后才发现这个问题的:
@echo off
if "%1"=="" goto usage
if "%1"=="/?" goto usage
if "%2"=="#has_drv" goto chg_drv
for %%c in (/%1) do set $=%%c
for %%c in (/%$%) do if "%%c"==":" goto has_colon
goto chg_drv
:has_colon
for %%c in (/%1) do %0 %1 #has_drv %%c:
:usage
echo Change Drive and Directory.
echo Made By DEFRAG 2004.12.09 China DOS Union
echo.
echo Usage:CDD Path
echo.
goto exit
:chg_drv
set $=
%3
if not "%1"=="%3" cd %1
:exit
作者: xlxlds
时间: 2005-1-7 00:00
我随便处理下 , 望高手能指点下。。。 我刚入门啊, 只知道一点。。。
