标题: [已结]下面的代码如何在4DOS下运用啊?
[打印本页]
作者: austion
时间: 2008-11-25 18:30
标题: [已结]下面的代码如何在4DOS下运用啊?
在4DOS下下面的都不能像以前在DOS下那样显示正常了。
:789
cls
call w.bat box (+white on red) @123456.bat:123
if errorlevel 100 goto exit
if "%?%"=="2" goto boot
if "%?%"=="1" goto 456
:123 " Sorry! " [x]
失败!
~%mob_i%~
%echo1%
%echo2%
%echo3%
[ 详情(&L)] [ 重启(&R) ]
::
请问我该如何的去弄呢?
当中里面已经有WBAT.INI、WBAT.COM、W.BAT文件了。
W.BAT代码如下:
WBAT $W %1 %2 %3 %4 %5 %6 %7 %8 %9
set WBAT=
set ?=
我该怎么弄这在4DOS下才能正常显示呢?
[
Last edited by austion on 2008-11-26 at 16:18 ]
作者: DOSforever
时间: 2008-11-25 19:15
建议你在 4DOS 下重写
作者: austion
时间: 2008-11-25 19:48
我不懂得如何的重写这个啊!
我本来就不懂这个显示的原理是什么。
作者: austion
时间: 2008-11-25 20:14
我觉得很奇怪啊,在4DOS里的FOR中好像使用 %%i 的不一定能行,使用 %i 还真可以啊。
作者: DOSforever
时间: 2008-11-25 20:49
要看你哪里用百分号,4DOS 中 FOR 命令用的变量参数 % 和 %% 不论是在命令行中还是在批处理文件中都是可以的,常规的 % 和 %% 用法和 COMMAND 下一样。
作者: austion
时间: 2008-11-25 21:47
DOSforever可以帮忙看看1楼的代码怎样改才可以在4DOS下运行跟在DOS下运行的一样。或者有什么办法实现这个?这个其实跟里面的帮助的显示是一样的,只是我不会。
谢谢!
[
Last edited by austion on 2008-11-25 at 21:48 ]
作者: DOSforever
时间: 2008-11-25 21:51
哎哟——你就这一段我怎么看得懂你要干什么哟,而且 WBAT 我也从来没用过。
作者: austion
时间: 2008-11-25 22:17
@echo off
x:
cd\
call tway.bat
call mouse.bat
在1楼的代码前就是上面的这些代码了,
当中的TWAY.BAT就是:
@echo off
tw.exe /np /nm /nw >nul
cls
当中的mouse.bat就是:
@echo off
ctmouse >nul
cls
上面的TW.EXE就是一个显示汉字的,CTmouse.EXE就是鼠标的。这两个应该都不少人用。
作者: austion
时间: 2008-11-25 22:18
没有代码,你也可以教一下我,你是如何显示菜单的。谢谢!
作者: austion
时间: 2008-11-25 22:36
无意中找到一份由本盟网友提供的一份资料:
READ4DOS.TXT
里面的内容是:
>>>>> Read this if you use 4DOS or NDOS
Make WBAT batches 4DOS compatible
---------------------------------
1. 4DOS has an unexpected behaviour when parentheses are used in
the arguments of a CALL statement. A special 4DOS token in the
file W.BAT will fix this problem:
Please change (the first line of) the file W.BAT to: WBAT $W %&
----- ----------
2. If WBAT is supposed to run under 4DOS as well as MS-DOS, modify
W.BAT as follows:
@if "%@eval[2+2]%" == "4" WBAT $W %&
@if not "%@eval[2+2]%" == "4" WBAT $W %1 %2 %3 %4 %5 %6 %7 %8 %9
Note: These two lines will remain untouched, because WBAT will start
writing the SET instructions in the first line that does not begin
with an @-sign.
3. Remember known 4DOS issues: %+ and %=
Avoid a plus sign immediately following a variable, like: %pos%+1,
because "%+" seems to have higer priority under 4DOS.
Solution: insert blank space, e.g. %pos% +1 (MS-DOS compatible),
or ommit the second %-sign.
The same applies to "%=", e.g. SET %name%=something. Solution ??
***
只可惜我的英文能力有限,有不少地方理解不了。
作者: austion
时间: 2008-11-25 22:45
看了上面,我才了解到一点,难怪我使用set %123%=等的时候都得不到我想要的东西,原来是%=有高执行权,需要在这两个号中加入空格。
作者: austion
时间: 2008-11-25 23:01
谜底解开了,W.BAT代码如下:
WBAT $W %1 %2 %3 %4 %5 %6 %7 %8 %9
set WBAT=
set ?=
把这个代码改为如下:
WBAT $W %&
set WBAT=
set ?=
就可以用了。
作者: austion
时间: 2008-11-25 23:02
谜底虽然解开,但是我对上面的:
2. If WBAT is supposed to run under 4DOS as well as MS-DOS, modify
W.BAT as follows:
@if "%@eval[2+2]%" == "4" WBAT $W %&
@if not "%@eval[2+2]%" == "4" WBAT $W %1 %2 %3 %4 %5 %6 %7 %8 %9
Note: These two lines will remain untouched, because WBAT will start
writing the SET instructions in the first line that does not begin
with an @-sign.
不太了解,熟悉4DOS的朋友可以讲解一下吗?
作者: DOSforever
时间: 2008-11-25 23:14
按理说 4DOS 也可以使用 %1 %2 %3 %4 %5 %6 %7 %8 %9 这样的参数形式,为什么要改成 %& ?这是 WBAT 的要求,对 WBAT 不是很了解。
作者: austion
时间: 2008-11-25 23:37
我对4DOS也不是很了解,对于%&不懂这个代表什么。
我今天才接触4DOS。
作者: DOSforever
时间: 2008-11-25 23:45
%& 代表批处理执行时命令行后面的所有参数,也就是你在不确定有几个参数的情况下统统包括进去。
作者: austion
时间: 2008-11-26 16:18
谢谢