我想知道批处理文件中标签的最大长度。
我发现说:
MS只识别批处理文件标签的前八个字符;忽略后续字符。
它们还提供了一个例子:
@echo off
goto latestch
:latestchanges
echo two
:latestch
echo three
它应该输出
two
three
而不是
three
但在我的系统里,我得到
three
我在Windows 7 (6.1.7600)和WindowsXP (5.1.2600)上进行了尝试,并得到了相同的结果。
在我看来,没有八个字符的限制!
我是不是遗漏了什么?
如何使用MS-DOS编码将一些文本写入txt文件?我使用的是类文件。也许我必须使用另一个类?
CString text;
CString file_name;
text = "My text must be in txt file in MS-DOS encoding.";
file_name = "MyFile.txt";
FILE *fp;
fp = fopen(file_name, "w+");
fprintf(fp, text + "\n");
fclose(fp);
我最近开始学习x8086指令,对指令的了解也很差。我试图使用dos函数3 3Bh更改当前的工作目录,然后使用39h在目录上创建一个名为"test2“的文件夹。无法理解问题是什么,或者是emu8086问题。
.MODEL SMALL,C
.STACK
.DATA
CD db "c:\test1",0
dir db "test2",0
.CODE
mov ax,@data
mov ds,ax;
mov dx,offset CD
mov ah,3Bh
int 21h
mov dx, offset
我在64位AMD处理器上运行Windows 8的32位副本。我正在学习8086汇编课程,这本书给出了一个如何获得DOS版本号的例子。当我启动cmd.exe时,它在顶部告诉我它是版本6.2.9200。此外,当我运行"VER“DOS命令时,它告诉我同样的事情。但是,当我执行30H中断例程以获取DOS版本号时,它告诉我正在运行DOS版本5.0。如何解释这种差异?
顺便说一句,我使用命令ML /Fl DOSVER.ASM在MASM6中组装了下面的代码。
.MODEL SMALL
.DATA
VNS DB 'DOS Version $'
.COD
我正在编写一个玩具QBasic编译器,并对它进行了一些测试。当我试图创建一个向量类型时,我遇到了与REDIM不一致的地方。
以下代码适用于QBasic和QuickBasic 4.5 解释器。但是,当编译为EXE时,它会为第二个REDIM生成“超出范围的子脚本”错误。
DECLARE SUB RedimIntArray (arr() AS INTEGER)
DECLARE SUB RedimLongArray (arr() AS LONG)
' $DYNAMIC
DIM xs(2) AS INTEGER
PRINT UBOUND(xs)
RedimIntArray xs()
PRINT