
다음 상황에 대해 조언을 해주는 사람이 있는지 알아보겠습니다. 저는 필요에 따라 명령 프롬프트를 사용자 정의해 왔으며 최근에 사용자에 대한 프롬프트를 변경했습니다. 프롬프트에 경로를 표시하는 대신 항상 창 제목이 되도록 하고 싶습니다.
새 레지스트리 키를 다음 위치에 넣었습니다.
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Command Processor/AutoRun
가치있는
title %cd%
이 스크립트는 명령 프롬프트가 시작될 때마다 실행됩니다. 이것은 작동합니다. 바로가기를 통해 명령 프롬프트를 열 때마다 제대로 작동합니다.
그러나 마우스 오른쪽 버튼 클릭 -> 명령 프롬프트 열기를 통해 명령 프롬프트를 열 때마다 이것은 분명히 실행되지 않습니다. 여기에서 open에 대한 쉘 명령을 살펴 보았습니다.
HKEY_CLASSES_ROOT/Directory/shell/cmd/command
기본적으로 다음과 같이 설정됩니다.
cmd.exe /s /k pushd "%V"
나는 이것을 다음과 같이 변경하려고 시도했습니다.
cmd.exe /s /k "cd %1 & title %cd%"
"%1"은(는) 여기 열기 스크립트를 위해 온라인의 다른 장소에서 제안되었으며, 내가 올바르게 이해했다면 &는 두 명령을 모두 실행해야 합니다. 그러나 여기에서 명령 프롬프트를 열 때마다 여전히 작동하지 않습니다. 작업 디렉터리는 실제로 정확합니다. 창 제목은 여전히 "C:\Windows\System32"입니다.
어떤 조언이 있습니까?
답변1
당신은 해결책에 꽤 가까웠습니다. 나에게는 다음 명령이 작동합니다.
cmd.exe /s /k "pushd ""%V"" & title %V"
편집: 레지스트리에는 "여기에 명령 프롬프트" 셸 확장을 지원하는 여러 위치가 있습니다. 이 변경 사항이 모든 개체(디렉터리, 드라이브 및 특수 폴더)에서 일관되게 작동하려면 레지스트리에서 의 모든 항목을 검색 cmd.exe /s /k pushd "%V"
하고 위의 값으로 바꿔야 합니다.
답변2
이 웹사이트를 사용해 보세요. 이 사람들은 정말 도움이 됩니다. 모든 스위치가 고장났습니다.
아니요, 저는 해당 웹사이트와 아무런 관련이 없습니다. 단지 도움이 되려고 노력하는 것뿐입니다. 이 사람들과 SuperUser.com 웹사이트는 나에게 수백 번이나 도움을 주었습니다.
CMD.exe 새 CMD 셸을 시작하고 (선택적으로) 명령/실행 프로그램을 실행합니다.
Syntax
CMD [charset] [options]
CMD [charset] [options] [/c Command]
CMD [charset] [options] [/k Command]
Options
/C Run Command and then terminate
/K Run Command and then return to the CMD prompt.
This is useful for testing, to examine variables
Command : The command, program or batch script to be run.
This can even be several commands separated with '&'
(the whole should also be surrounded by "quotes")
/T:fg Sets the foreground/background colours
/X Enable extensions to CMD.EXE
/Y Disable extensions to CMD.EXE
/A Output ANSI characters
/U Output UNICODE characters (UCS-2 le)
These options will affect piping or redirecting to a file.
Most common text files are ANSI, use these switches
when you need to convert the character set.
/D Ignore registry AutoRun commands
HKLM | HKCU \Software\Microsoft\Command Processor\AutoRun
/F:ON Enable auto-completion of pathnames entered at the CMD prompt
/F:OFF Disable auto-completion of pathnames entered at the CMD prompt (default)At the command prompt Ctrl-D gives folder name completion and Ctrl-F gives File and folder name completion.
These key-strokes will display the first matching path. Thereafter, repeated pressing of the same control key will cycle through the list of matching paths. Pressing SHIFT with the control key will move through the list backwards.
/Q Turn echo off
/S Strip quote characters from the command_line
/V:ON Enable delayed environment variable expansion
this allows a FOR loop to specify !variable! instead of %variable%
expanding the variable at execution time instead of at input time.
/V:OFF Disable delayed environment expansion.
Environment expansion preference can be set permanently in the registry
HKLM | HKCU \Software\Microsoft\Command Processor\DelayedExpansion
Set to either 0x1 or 0x0
/knetdiag /debug
/knetdiag /fix
The knetdiag switches are undocumented and work in XP only
they list and (may) fix these networking issues.If /C or /K is specified, then the remainder of the command line is processed as an immediate command in the new shell. Multiple commands separated by the command separator '&' or '&&' are accepted if surrounded by quotes.
따옴표(") 문자를 처리하는 데는 다음 논리가 사용됩니다.
- 다음 조건이 모두 충족되면 명령줄의 따옴표 문자가 유지됩니다.
- /S 스위치 없음(따옴표 제거)
- 정확히 두 개의 따옴표 문자
- 두 따옴표 문자 사이에는 특수 문자가 없습니다. 여기서 특수 문자는 다음 중 하나입니다. & < >( ) @ ^ |
- 두 따옴표 문자 사이에 하나 이상의 공백 문자가 있습니다.
- 두 따옴표 문자 사이의 문자열은 실행 파일의 이름입니다.
- 그렇지 않은 경우 이전 동작은 첫 번째 문자가 따옴표 문자인지 확인하고 그렇다면 명령줄에서 선행 문자를 제거하고 마지막 따옴표 문자를 제거하여 마지막 따옴표 문자 뒤의 텍스트를 유지하는 것입니다. 이 동작을 무효화하려면 명령줄의 시작과 끝에 이중 따옴표 ""를 사용하십시오. 전체 화면 ALT + ENTER 키 조합은 CMD 창을 전체 화면 모드로 전환합니다. 일반 창으로 돌아가려면 ALT + ENTER를 다시 누르세요. Command.com 대 CMD.exe 이 페이지의 모든 명령은 32비트 또는 64비트 명령줄(cmd.exe)을 실행한다고 가정합니다.
이전 16비트 명령 프로세서 command.com은 16비트 DOS 응용 프로그램에 대한 이전 버전과의 호환성을 제공하기 위해 제공됩니다. Command.com은 cmd.exe에 비해 기능이 매우 제한되어 있습니다. 예를 들어 많은 명령 후에 %errorlevel%을 설정하지 못합니다.
.BAT 대신 .CMD 확장자를 사용하여 배치 스크립트의 이름을 지정하면 Windows 95 시스템에 복사하더라도 command.com에서 실행되지 않습니다.
%COMSPEC% 환경 변수는 CMD.EXE 또는 command.com을 실행 중인지 표시합니다.
.CMD와 .BAT 스크립트(CMD.EXE에서 실행)의 주요 차이점 중 하나는 확장이 활성화된 경우 PATH/APPEND/PROMPT/SET/ASSOC와 같은 명령이 성공할 경우 ERRORLEVEL을 0으로 재설정한다는 것입니다. 이전 스타일 .BAT 파일에서는 새로운 오류가 발생하지 않는 한 ERRORLEVEL이 변경되지 않습니다(소스). 64비트 버전의 Windows에서 32비트 CMD.exe는 %windir%\SysWoW64\cmd.exe에서 찾을 수 있습니다. 호환성 문제를 줄이기 위해 WOW64 하위 시스템은 레지스트리 호출 및 일부를 리디렉션하여 64비트 바이너리에서 32비트 바이너리를 격리합니다. 파일 시스템 호출. Windows 탐색기에서 CMD 열기 START, RUN, cmd, OK를 선택하여 새 CMD 프롬프트를 열 수 있습니다. 레지스트리 키: 명령 프롬프트에서 UNC 경로 허용 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor] "DisableUNCCheck"=dword:00000001
; CMD.exe가 시작될 때 명령 실행 [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor] "AutoRun"=-
; 자동 완성 활성화 [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor] "CompletionChar"=0x9
; Windows 7의 경우: '여기에서 CMD 프롬프트 열기(관리자)' 옵션을 ; 파일 시스템 폴더에 대한 상황에 맞는 메뉴: [HKEY_CLASSES_ROOT\Directory\shell\runas]@="여기에서 CMD 프롬프트 열기(관리자)" [HKEY_CLASSES_ROOT\Directory\shell\runas\command] @="cmd.exe /k pushd %L"
; Windows 7의 경우: '여기에서 CMD 프롬프트 열기(관리자)' 옵션을 ; 내 컴퓨터 문맥 메뉴 : [HKEY_CLASSES_ROOT \ CLSID {20D04FE0-3AEA-1069-A2D8-08002B30309D} \ shell \ runas] @= "여기서 CMD 프롬프트 (admin)"[hkey_classes_root \ clsid {20d04fe0-3aea-069-a2d8-04-1069 }\shell\runas\command] @="cmd.exe"이전 명령 기록 위쪽 화살표를 누르면 명령 프롬프트에 입력한 이전 명령이 나열됩니다. 다른 DOSKEY 기능 키는 기본적으로 로드됩니다(F7, F8, F9) 복사 및 붙여넣기 / QuickEdit 명령 프롬프트에서 잘라내기 및 붙여넣기 사용을 단순화하려면 다음과 같이 QuickEdit 모드를 활성화하십시오. 현재 키의 왼쪽 상단에 있는 제어 메뉴를 활성화합니다. cmd 창에서 속성, 옵션 탭으로 이동한 다음 QuickEdit 모드를 선택하세요. 이제 마우스로 텍스트를 선택하고 Enter 키를 누르거나 마우스 오른쪽 버튼을 클릭하여 클립보드에 복사할 수 있습니다. Ctrl+V(또는 마우스 오른쪽 버튼 클릭)를 사용하거나 메뉴를 통해 아무 곳에나 붙여넣습니다. ESC는 선택을 취소하고 편집 모드로 돌아갑니다. 창 간에 복사할 때 창을 선택하려면 한 번 클릭하고 붙여넣으려면 두 번째 클릭이 필요할 수 있습니다. CMD.exe의 여러 인스턴스 실행 명령줄이나 배치 스크립트에서 CMD는 동일한 창에 나타나는 CMD.exe의 새 인스턴스를 시작합니다. EXIT 명령은 두 번째 CMD 인스턴스를 닫고 이전 셸로 돌아갑니다.
하나의 배치 스크립트를 다른 배치 스크립트에서 호출하는 방법은 CMD /c C:\docs\myscript.cmd와 같은 명령을 실행하는 것입니다.
CMD의 출력을 텍스트 파일로 리디렉션할 수 있습니다. CMD /c가 사용되는 경우 EXIT 명령이 필요하지 않습니다.
환경 변수 %CMDCMDLINE%는 CMD.EXE에 전달된 원래 명령줄로 확장됩니다. CMD.exe의 기본 버전은 항상 %windir%\system32에 있으며, 64비트 운영 체제에서는 %에 32비트 CMD.exe도 있습니다. windir%\SysWOW64
배치 스크립트 일시 중지 또는 중지 CTRL-S를 눌러 배치 스크립트 실행을 일시 중지할 수 있습니다. 이는 DIR 목록과 같은 단일 명령을 일시 중지하는 데에도 작동합니다. 아무 키나 누르면 작업이 다시 시작됩니다.
CTRL-C를 눌러 배치 스크립트 실행을 중지할 수 있습니다.
하나의 배치 파일이 다른 배치 파일을 호출하는 경우 CTRL-C는 두 배치 스크립트를 모두 종료합니다. CMD /c를 사용하여 다른 배치 파일에서 하나의 배치 파일을 호출하는 경우 CTRL-C를 사용하면 배치 스크립트 중 하나만 종료됩니다. (EXIT 참조)
긴 명령 및 긴 파일 이름 Windows XP에서 CMD 명령줄은 8,191자로 제한됩니다. 모든 Windows 버전에서 NTFS 및 FAT는 최대 260자의 경로 이름을 허용합니다.
제한된 경로 이름 길이에 대한 해결 방법은 \?\ 접두사를 사용하는 것입니다.
예:
\?\C:\TEMP\Long_Directory\Long_Filename.txt
ErrorLevel
CMD /C는 오류 수준을 반환합니다. 예: CMD /c dir Z: 여기서 드라이브 Z : 존재하지 않으면 호출 CMD 쉘에 %errorlevel% = 1을 반환합니다.
명령 확장
CMD.exe의 기능 대부분은 비활성화할 수 있습니다. 이는 모든 내부 명령에 영향을 미치며 명령 확장은 기본적으로 활성화됩니다. 이는 레지스트리에서 값을 설정하여 제어됩니다. HKCU\Software\Microsoft\Command Processor\EnableExtensions 또는 Win XP에서는 CMD /e:on 또는 CMD /e:off를 실행할 수 있습니다.
예:
프로그램을 실행하고 파일 이름 매개 변수를 전달합니다.
CMD /c write.exe c:\docs\sample.txt
프로그램을 실행하고 긴 파일 이름을 전달합니다.
CMD /c write.exe "c:\sample document\sample.txt"
프로그램 경로의 공백:
CMD /c "" c:\Program Files\Microsoft Office\Office\Winword.exe""
프로그램 경로의 공백 + 매개변수:
CMD /c ""c:\Program Files\demo.cmd"" 매개변수1 Param2
프로그램 경로의 공백 + 공백이 있는 매개변수:
CMD /k ""c:\batch files\demo.cmd" "공백이 있는 매개변수 1" "공백이 있는 매개변수 2""
Demo1을 시작한 다음 Demo2를 시작합니다.
CMD /c ""c:\Program Files\demo1.cmd" & "c:\Program Files\demo2.cmd""
“스스로 명령할 수 있는 사람은 다른 사람에게도 명령할 수 있다” - Hazlitt
관련된:
EXIT - CMD 셸을 닫고 돌아가려면 이 옵션을 사용합니다.
CALL - 다른 배치 프로그램에서 하나의 배치 프로그램 호출
START - 프로그램, 명령 또는 배치 파일 실행
DOSKEY 명령줄 편집, 명령 호출
Q156276 - Cmd는 현재 디렉토리로 UNC 이름을 지원하지 않습니다
. Powershell: Powershell에서 CMD 쉘을 실행할 수 있습니다. PS 프롬프트로 돌아갑니다.
해당 bash 명령(Linux): bash - bash 셸(csh, ksh, sh라고도 함)을 실행합니다.