세션간에 cmd.exe 명령 기록을 유지 하시겠습니까?


답변:


22

PowerShell 사용으로 전환하고 다음 사이트의 지침에 따라 기록을 활성화하십시오.

http://blogs.msdn.com/b/powershell/archive/2006/07/01/perserving-command-history-across-sessions.aspx

또는 cmd.exe에서 세션 끝에 "doskey / history"를 사용하여 해당 세션에 입력 한 내용을 표시 할 수 있지만 다음 세션에 실제로로드 할 수있는 방법은 없습니다.


6
"PowerShell을 사용하여 전환"이 콘솔을 사용하는 종류의 물건에 따라 들리는 것처럼 반드시 쉬운 것은 아니기 때문에 +1에 주저했지만 정보는 정확한 soooooooooo;)
— Shinrai

2
동의했다. 나는 그것을 내려 놓기를 주저했지만 내가 찾을 수있는 유일한 실제 답변입니다. 이전에 사용했던 워크 스테이션에서 비슷한 작업을 시도했지만 cmd.exe에 사용할 수있는 영구적 인 기록 메커니즘은 없습니다 :-(
— Hyppy

이렇게하면 입력 한 명령 목록이 유지되지만 키보드에서 위로 키를 눌렀을 때 나타나는 명령 목록은 변경 하지 않습니다 . 즉, "doskey"기능에는 영향을 미치지 않습니다.
— Mark

cmd에서 작동하는 일부 명령은 PowerShell에서 동일하게 작동하지 않습니다. 예를 들어 mvn
— install`

62

PowerShell로 전환하지 않아도되는 두 가지 방법을 찾았습니다.

  1. Clink를 설치 하면 cmd.exe영구 히스토리 등 이 향상 됩니다. 설치 한 다음 cmd정상적으로 엽니 다 .

  2. 별도의 프로그램 인 TCC / LE 무료 버전을 설치 하여 다시 향상된 버전을 제공하십시오 cmd.exe.


5
나는 시스템 전체의 교체에 대해 약간 불안 cmd.exe하지만 좋은 대답이며, clink는 주입 모드도 지원합니다.
— Lorenz Lo Sauer

4
와, Clink는 환상적입니다.
— Chris Weber

4
교도소는 훌륭합니다. cmd그것으로 대체 되어 문제가 없었으며 매우 행복했습니다.
— 대령 패닉

2
교도소는 훌륭합니다!
— Hoang Huynh

3
이것이 정답입니다. 이것이 질문에 의해 요청 된 것이기 때문에 .. !! 이것은 다른 대체 응용 프로그램을 사용하는 것보다 가장 좋습니다.
— Samitha Chathuranga

12

히스토리 저장은 작은 워크 플로우입니다. 여기에는 "무거운"방법이 있습니다 (외부 라이브러리 없음).

이력을 설정하기 위해 bat / cmd 파일을 작성하십시오.이 경우에는이를 MyEnvironment.cmd라고합니다.

doskey save=doskey /history $g$g C:\CmdHistory.log
doskey quit=doskey /history $g$g C:\CmdHistory.log $T exit
doskey history=find /I "$*" C:\CmdHistory.log
cls

그런 다음 "시작-> 실행"에서이를 실행하십시오 (이에 대한 별명도 설정할 수 있음).

cmd.exe /K C:\MyEnvironment.cmd

세션을 닫을 때마다 "종료"를 누르십시오. 또는 세션 도중에 기록을 잃는 것을 두려워하는 경우 "저장"을 누르십시오. 역사에서 무언가를 욕하고 싶다면 "역사 키워드"를 누르십시오.


@ dave_thompson_085의 의견에 AutoRun따라 /K스위치 를 사용하지 않으려는 경우 기능이 잘 작동 합니다. 레지스트리 키를 올바르게 설정 .cmd했거나 .bat에있을 필요가 없으면 %AppData%이미있는 동일한 위치에있을 수 있습니다.

%AppData%위치를 사용하는 경우 cmd는 아마도 AppData 루트 대신 "Roaming"폴더에서 배치 파일을 찾을 것입니다.

AutoRunCMD 기능 에 대한 추가 정보 : https://superuser.com/a/302553/333316


어떤 $g과 $t에 대한인가?

@ Chinggis6는 $g삽입 >및 $t명령 분리기이다.
— Superole

확인 아 @Superole, g에 비해 reater와 t erminate하지만 사용하지 않는 이유 >와 &&도스 키 별명에 직접 문자?

@ Chinggis6 때문에 별칭을 만드는 명령이 중단 될 것입니다. 그런 다음 명령 인터프리터는 다음을 의미한다고 가정합니다. 먼저 doskey quit=doskey /history매크로 작성 결과를 로그 파일 (아무 것도 또는 오류 메시지)로 실행 하고 저장합니다. 다음으로 창을 닫습니다 (모든 항목 삭제). -당신은 ^대신에 그 캐릭터들을 피할 수 있다고 생각합니다. Like ^>^>and ^&(... 그리고 네, 앰퍼샌드 하나만 필요합니다)
— Superole

1
명시 적 대신 superuser.com/a/302553/333316/k 을 사용할 수 있습니다AutoRun
— dave_thompson_085

2

cygwin을 사용 합니다. 또한 Linux에는 있지만 Windows에는없는 다른 기능도 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.