MS-DOS将COM或EXE文件加载到内存中的步骤是什么?网上是否还有关于这是如何发生的参考?我能想到的最好的可能是指dosbox源码.
我需要检查通过SQLCMD实用程序运行的查询的退出状态(成功/失败).例如,我连接的服务器没有数据库名称EastWind.然后,下面的命令失败并显示消息...
> "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE"
-S ZEPHIR -E -Q "USE WestWind"
Changed database context to 'WestWind'.
> echo %errorlevel%
0
> "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE"
-S ZEPHIR -E -Q "USE EastWind"
Database 'EastWind' does not exist. Make sure that the name is entered correctly
> echo %errorlevel%
0
Run Code Online (Sandbox Code Playgroud)
我看到两种情况下的返回值都是相同的.如何检查命令是否失败SQLCMD?
我有一个脚本,打印日志和时间,后跟日志中的字符串.
echo %DATE%_%TIME% Processing %%f >> process.log
Run Code Online (Sandbox Code Playgroud)
问题是日期和时间始终是脚本启动的日期和时间.我一直在运行脚本,但仍然有相同的日期和时间.有没有办法更新它们,以便显示字符串打印到日志文件时的当前日期和时间?
我想将一个字符串分成两部分,而不使用任何for循环.
例如,我在变量中有字符串:
str=45:abc
Run Code Online (Sandbox Code Playgroud)
我想进入45变量和abc另一个变量.是否可以在批处理文件中?
模式就像某些数字:somestring
我以前的相关问题是逆向工程旧油漆程序
我在这里建立了我的运营基地:http://animatorpro.org wiki即将推出.
好的,现在我有300,000行传统的MSDOS代码库.这有点"小心你想要的"情况.我不是一位经验丰富的C程序员.我也不是完全缺乏经验,但出于所有意图和目的,我对语言是一个菜鸟,特别是它的图书馆的复杂性.我特别不了解专门为MSDOS编写的C程序与跨平台程序之间差异的变幻莫测.但是我已经研究了这个代码库超过一年了,这就是我对Animator Pro的了解:
使用的编译器和工具:
大部分编译似乎都是由批处理文件驱动的.虽然我已经获得了所有这些工具的副本,但我还没有成功编译它.(虽然我编译了它的哥哥,autodesk animator original.
它有一个插件系统,可以在DLL可用之前复制DLL,基于REX.插件系统处理:
它有自己的脚本解释器,名为POCO,基于C语言 - 脚本语言有足够的能力来完成插件系统可以做的几乎所有事情 - 只是更慢.
鉴于此信息,这是我的发展计划.请批评这个.源代码可在上面的链接中找到,因此如果您愿意,可以轻松地自己评估情况.
任何人都有问题吗?allegro是个不错的选择吗?如果没有,为什么?你会对这个插件系统做些什么?你会做什么不同的?这整件事是愚蠢的吗?我应该从头开始重写它,使用原始的灵感吗?(显然需要原始开发人员"大约一个月"才能做到这一点)
我上面没有提到的一件事是文本/字体系统.不知道该怎么办,但Animator Pro有自己的自定义字体格式,但也可以使用Postscript Type 1字体和其他一些格式.
DOS中字符表的地址是什么,我们可以通过操纵每个字符的像素来创建新的字体和符号?
我知道用BIOS中断来改变它,但是我只需要dos中字符表的内存地址来直接访问.
我有2个文件夹(比如Source和Working)......现在在这些文件夹中有100个其他文件/文件夹..
现在,文件夹Source定期更新(即某些文件/文件夹可能会更改或添加)我试图保持两个文件夹同步.
所以我需要一个批处理命令,只有"源"中新/修改的文件/文件夹才会更新到"工作"文件夹中.
请帮我.谢谢.
我有几个非常老的基于MSDos的绘画程序.它们适用于调色板索引图像缓冲区.它们具有许多壮观的形状绘制工具,画笔和效果,在任何现代绘画程序中都不存在 - 特别是在保持在低调色板索引图像的"边界"内时.我想在现代程序中重现许多这些奇妙的工具,或许让我们再次更容易访问自己和普通大众,而无需启动像dosbox这样的模拟器.但我有一个问题.
虽然很多这些画笔和工具都有明显的功能,但其实现应该相当简单.但是使用其他工具,他们的操作原则并不那么明显.我将无法确定一个正确或忠实的算法来实现这些.
如果你是我,你会采取什么方法?是否有现成的反编译器/反汇编器可以处理这样的旧程序?或者你会采取一些不同的方法,例如有条不紊地测试不同输入的算法,以推断潜在的功能?不同技术的某种组合?对于这些程序的一行,这些(商业)程序的原作者是已知的,现在是狂热的开源倡导者.我应该尝试直接与他们联系并询问吗?我对逆向工程并不是特别有经验,所以我不知道从哪里开始.
编辑:似乎"问,你们应该接受"真的有效.
编辑2:查看http://animatorpro.org获取我获取源代码的程序的源代码.豪华油漆也不错,但丹席尔瓦似乎已经从地球上消失了.
我正在尝试编写一个批处理文件来迭代执行fortran编译的可执行文件.通常会进入Windows命令提示符,键入"Model.exe".这将打开一个dos命令窗口,要求用户在dos提示符下直接在命令窗口中键入所需的文件名.
我想写一个批处理文件,它会为我做这一点,并且还迭代这一步,这样我就可以连续运行10次模拟而不必手动完成.这种shell操作在linux中会很简单,但我没有这个.
我的伪代码看起来像这样:
for/L %% run in(1,1,10)do
(set str = Sim %% run
echo.%str%> input.txt
Model.exe <input.txt)
您可以将其分解为以下步骤:
如果我使用set str = Sim1然后直接将它回显到"input.txt",我可以得到上面的工作,但我不能让它作为循环工作.我错过了什么吗?
最好的祝福,
本
我想抑制在DOS下运行的脚本的输出,类似于*nix环境下的以下内容:
$ command 1>/dev/null
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
dos ×10
batch-file ×3
c ×2
paint ×2
allegro ×1
assembly ×1
date ×1
decompiling ×1
dev-null ×1
disassembly ×1
executable ×1
for-loop ×1
memory ×1
redirect ×1
sql-server ×1
sqlcmd ×1
time ×1
vga ×1