명령 출력을 파일 MS-DOS 1.x에 저장


27

[COMMAND]>[FILE]초기 버전의 MS-DOS에서는 작동하지 않는 것 같습니다 . MS-DOS 1.25를 사용하고 있으며 위의 표현은 문장을 제공합니다 invalid argument.

업데이트 : DOS 1.x에서 작동하지 않는 것이 사실이므로 가상 상자의 일부 기능을 사용하여 출력을 얻거나 일부 로그 파일에서 출력을 가져 오는 것이 가능합니다.


18
왜 DOS 1.25를 사용하고 있습니까?!
Keltari

41
@Keltari : 없음 짜증나는 윈도우 10 업데이트 알림
마크 K 코완

6
여기에 주제가 아닌 설정에 대한 다른 질문이 있으면 그러한 종류의 전용 SE 사이트 인 Retrocomputing을 시도하십시오 . (전체 공개 : 해당 사이트와 약간 관련 이있을 수 있습니다.)
wizzwizz4

4
이 질문은 나를 다시 젊게 만듭니다!
Dmitry Grigoryev

9
MS-DOS 1.x는 기본적으로 CP / M 클론이며, 여기서 Ctrl-P는 콘솔 출력을 프린터로 복사하는 것을 트리거했습니다. 따라서 MS-DOS에서도 비슷한 방법이 가능합니다.
Thorbjørn Ravn Andersen

답변:


5

가상 머신 디버깅 기능 (또는 gdb / 다른 것)을 사용하여 메모리를 직접 읽을 수 있습니다. ms-dos는 메모리 보호 기능도없고 멀티 태스킹 시스템도 아니므로 가상 시스템 메모리를 읽을 수 있으며 가상 시스템 vga를 입력하여 읽을 수 있습니다.

문서 에 명령이 있다고 말합니다

info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode

출력을 얻는 올바른 구문은 VirtualBox --debug --startvm msdos1.25다음과 같습니다. run 다음 디버거 콘솔에서 info vgatext

복사하여 붙여 넣은 출력 :

The COMPAQ Personal Computer DOS                                                
Version 1.11                                                                    


(C) Copyright COMPAQ Computer Corp. 1982                                        
(C) Copyright Microsoft 1981, 82                                                


A>                                                                              











--------------------------------------------------------------------------------
VBoxDbg> 

따라서 프로그램이 출력 될 때 프로그램의 메모리 내부의 메모리 값에 연결하고 vga 화면을 덤프하는 디버거 스크립트를 작성할 수 있습니다. CPU 실행

조사 할 몇 가지 옵션은 다음과 같습니다.

  • 응용 프로그램의 메모리 내용을 덤프하기위한 디버깅 스크립트를 작성하는 방법 찾기

  • quemu / dosbox / virtualbox에 대한 디버깅 vga 드라이버 / 직렬 포트 / 메모리 덤핑 솔루션 찾기

  • 누군가 가이 목적으로 다시 쓴 80 년대의 오래된 유틸리티 프로그램을 찾으십시오.

  • 여기에 freedos 태그를 추가하십시오 (또는 큰 stackoverflow에 대한 귀하의 질문을 옮기거나 반복하기도합니다).

흥미로운 것을 발견하면 나중에 업데이트하지만 1.25를 사용하는 이유에 대한 세부 정보를 알려 주시겠습니까?이 프로그램이 최신 버전의 msdos에서 작동합니까? 작은 비용 으로이 프로그램을 최신 버전으로 패치하거나 파일 형식을 asm으로 추가하려는 젊은 어셈블리 해커를 찾을 수 있습니다.


해당 프로세스에 대한 추가 정보를 제공해 주시겠습니까?
Blake

@Blake 업데이트, 결국 info vgatext작동합니다. 디버거를위한 올바른 스크립트를 작성하는 것입니다.
strangeqargo

당신이 준 정보는 매우 흥미 롭습니다. 사실 그것은 내 상황에 절대적으로 사용할 수 있습니다. 나는 입력을주고 자동으로 출력을 가져 와서 작동 방식을 이해하고 싶은 오래된 응용 프로그램에 이것을 사용하고 있습니다. 가장 좋은 방법은 아니지만 다음과 같이하고 싶습니다. 답을 주셔서 감사합니다. 하루나 이틀 동안이 매뉴얼을 읽고 일종의 스크립트를 작성하십시오 (가능하다면) 그것이 작동하는지에 대한 정보를 제공 할 것입니다. 정말 고마워.
Blake

1
아직 답변을 표시하지 않은 경우 확실히 표시합니다. 모든 도움을 주셔서 감사합니다.
Blake

1
응용 프로그램의 출력을 텍스트로 가져와야했습니다. 설명서에는 터미널에서 디버그 콘솔을 사용하는 방법이 언급되어 있습니다. VBoxManaged debugvms <디버그 모드 VM에서 이미 시작된 이름> info vgatext를 사용하면 터미널 모드에서 화면을 인쇄하고 리디렉션과 간단한 구문 분석을 사용하여 필요한 것을 얻었습니다. 고맙습니다.
Blake

40

MS-DOS 초기 버전에서는 [COMMAND]> [FILE]이 작동하지 않는 것 같습니다.

MS-DOS 1.25를 사용하고 있으며 위의 표현식에 잘못된 인수가 표시됩니다.

맞아요. v1.25에서는 수행하려는 작업이 불가능합니다.

v2.0에서는 다른 많은 개선 사항과 함께 명령 리디렉션이 추가되었습니다.

MS-DOS 버전 2.0 (PC-DOS 2.0과 동일)은 1983 년 3 월에 처음 릴리스되었습니다. 새로운 운영 체제였습니다 (MS-DOS 버전 1과의 호환성을 유지하기 위해 많은주의를 기울 였음). 여기에는 다음 페이지에 나열된 기능을 포함하여 많은 중요한 혁신과 향상된 기능이 포함되어 있습니다.

  • 대용량 플로피 디스크 및 하드 디스크 모두 지원
  • 계층 적 파일 구조, 파일 핸들, I / O 리디렉션, 파이프 및 필터를 포함한 많은 UNIX / XENIX 유사 기능
  • 백그라운드 인쇄 (인쇄 스풀링)
  • 볼륨 레이블 및 추가 파일 속성
  • 설치 가능한 장치 드라이버
  • 추가 장치 드라이버로드, 시스템 디스크 버퍼 수 등을 제어하는 ​​사용자 정의 가능한 시스템 구성 파일
  • 프로그램간에 정보를 전달하는 데 사용할 수있는 환경 블록 유지 보수
  • 하드웨어 독립적 인 방식으로 프로그램이 커서 위치를 지정하고 디스플레이 특성을 제어 할 수있는 옵션 ANSI 디스플레이 드라이버
  • 응용 프로그램에 의한 메모리의 동적 할당, 수정 및 해제 지원
  • 맞춤형 사용자 명령 해석기 (쉘) 지원
  • 응용 프로그램 소프트웨어가 통화, 시간 및 날짜 형식을 수정하는 데 도움이되는 시스템 테이블 (국제 지원)

Ray Duncan의 소스 고급 MS-DOS 프로그래밍


대신 무엇을 할 수 있습니까?

가능한 해결 방법은 화면을 텍스트로 캡처하고 출력을 구문 분석하는 것입니다.

이 질문에 대한 답변 DOS의 화면 캡처에는 조사를 시작하는 일부 TSR (Terminate but Stay Resident) 프로그램이 나열되어 있습니다.


13
좋은 대답입니다. 진정한 슈퍼 사용자 만이 MS-DOS 1.0에 관심을 가질 것입니다.
나는

귀하의 답변에 감사드립니다. 감사하지만 가상 박스 기능을 사용하는 방법을 찾고 싶습니다. 지금은 답변으로 표시하지 않습니다.
Blake

@Blake 가능한 해결 방법은 화면을 텍스트로 캡처하고 출력을 구문 분석하는 것입니다. 답변을 업데이트했습니다.
DavidPostill

이 tsr 프로그램을 사용하려고 할 때 결과가 지연되어 죄송합니다. 내 컴퓨터에 접근하자마자 알려 드리겠습니다. 훌륭한 대안이며 제대로 작동하기를 기대합니다. 다른 프로그램을 설치해야합니까 (예 :이 tsr 환경을 작성하는 경우)?
Blake

1
@Blake 기억할 수는 없지만 DOS를 사용한 지 년이 지났습니다. 테스트 지연에 대해 걱정하지 마십시오;)
DavidPostill

-3

C를 설치하고 프로그램을 작성하여 dos 명령을 가져 와서 쉘에서 실행하고 결과를 기록 할 수 있습니다. Borland Turbo C 2.01을 사용하는 것이 좋습니다. 코드를 작성하려는 경우 Quickbasic로 코드를 작성할 수도 있습니다 ... ;-)

https://archive.org/details/msdos_borland_turbo_c_2.01

개인적으로, 나는 당신이 얻을 몇 가지 추가 사항이 있다고 DOS 5.5 또는 6을 사용합니다.


1
v1.25에서 작동합니까?
Blake

그렇다면 C 설치 및 결과 기록 방법에 대한 추가 도움을 줄 수 있습니까? 대단히 감사합니다.
Blake

1
@Blake 그것은 v1에서 작동하지 않습니다
edc65

C를 사용하여 프로그램을 작성하는 것은 그러한 프로그램을 작성할 때 사용할 API를 언급 한 경우 도움이 될 것입니다. (물론, 코드가 DOS 1.x와 호환되어야한다는 질문에 명백한 요구 사항을 고려했습니다.)이 답변은 모두 작동하지 않습니다. 널리 사용되는 컴파일러 / IDE 패키지에 대한 링크를 스팸으로 분류하며 이러한 도구 세트의 관련성에 대한 지침은 없습니다.
코디 그레이

C 컴파일러에는 stdin 및 stdout 기능이 있으며 쉘 명령을 실행할 수 있습니다. DOS 1에서 어떤 컴파일러를 사용할 수 있는지 잘 모르겠습니다. 보드를 유지 관리하는 데 관심이 있다면 MS DOS 1 용 코드를 작성하는 이유는 무엇입니까?
Gandolf989
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.