Il semble que [COMMAND]>[FILE]
cela ne fonctionne pas dans les premières versions de MS-DOS. J'utilise MS-DOS 1.25 et l'expression ci-dessus donne la déclaration invalid argument
.
Mise à jour : Puisqu'il est vrai que cela ne fonctionne pas sous DOS 1.x, il est alors possible d'obtenir cette sortie en utilisant certaines fonctionnalités de la boîte virtuelle ou de dire en obtenant la sortie de certains fichiers journaux.
Réponses:
vous pouvez utiliser les fonctionnalités de débogage de votre machine virtuelle (ou gdb / autre chose) pour lire directement la mémoire. ms-dos n'a pas de protection de mémoire ni un système multi-tâches, vous pouvez donc lire la mémoire de la machine virtuelle, vous pouvez lire la vga de la machine virtuelle pour l'entrée.
la documentation indique qu'il existe une commande
info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode
la syntaxe correcte pour obtenir la sortie est: exécutez
VirtualBox --debug --startvm msdos1.25
, puis, dans la console du débogueur:info vgatext
sortie copiée-collée:
Ainsi, vous pouvez écrire un script de débogage qui s'accroche à une valeur de mémoire dans la mémoire de votre programme et vide l'écran vga lorsqu'un programme génère / ou vous pouvez écrire un script qui met en pause le processeur, enregistre le contenu de manière cohérente, si la sortie change, enregistre le contenu mis à jour, continue cpu run
Quelques options à étudier sont:
découvrez comment écrire un script de débogage pour vider le contenu de la mémoire de votre application
trouver un débogage de pilote vga / port série / solution de vidage de mémoire pour quemu / dosbox / virtualbox
trouver un ancien programme utilitaire des années 80 que quelqu'un a peut-être écrit à cet effet
ajoutez la balise freedos ici (ou même déplacez / répétez votre question sur un gros stackoverflow, je suppose que certains gourous devraient savoir quelque chose sur des problèmes comme celui-ci
Je mettrai à jour plus tard si je trouve quelque chose d'intéressant, mais pouvez-vous s'il vous plaît révéler quelques détails sur la raison pour laquelle vous utilisez 1.25, ce programme fonctionne-t-il sur les nouvelles versions de msdos? Je parie que vous pouvez trouver un jeune hacker d'assemblage désireux de mettre à jour ce programme vers une version plus récente (ou d'ajouter une sortie de fichier avec asm) pour une somme modique
la source
info vgatext
fonctionner après tout, tout ce que vous avez à faire est d'écrire un script correct pour le débogueur, il sembleIl semble que [COMMANDE]> [FICHIER] ne fonctionne pas dans les premières versions de MS-DOS.
C'est exact. Ce que vous voulez faire n'est pas possible dans la v1.25.
La redirection de commandes (ainsi que de nombreuses autres améliorations) a été ajoutée dans la version 2.0.
Source avancée MS-DOS Programmation par Ray Duncan
Que puis-je faire à la place?
Une solution de contournement possible serait de capturer l'écran (sous forme de texte) et d'analyser la sortie.
Les réponses à cette question La capture d'écran dans DOS répertorie certains programmes TSR (Terminate but Stay Resident) qui sont des points de départ pour vous d'enquêter.
la source
Vous pouvez installer C et écrire un programme pour prendre les commandes dos, les exécuter dans un shell et enregistrer les résultats. Je recommanderais d'utiliser Borland Turbo C 2.01. Vous pouvez également écrire du code dans Quickbasic si vous cherchez à écrire du code ... ;-)
https://archive.org/details/msdos_borland_turbo_c_2.01
Personnellement, j'utiliserais DOS 5.5 ou 6 étant donné qu'il y a quelques choses supplémentaires que vous obtiendriez.
la source