세션간에 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.