regedit.exe를 사용하여 편집을 통해 호출되는 프로그램에 Windows 레지스트리에 대한 옵션을 어떻게 전달할 수 있습니까? 이것은 내가 알 수있는 한 구문 질문입니다.
예를 들어 ... 최근에 sDelete.exe라는 windows / system32 폴더에 새 프로그램을 추가했습니다. 그것은 Microsoft의 sysinternals에서 사용할 수있는 안전한 삭제 프로그램입니다
http://technet.microsoft.com/en-us/sysinternals/bb897443
웹 사이트에서 : SDelete는 국방부 청산 및 위생 표준 DOD 5220.22-M을 구현하여 SDelete로 삭제 한 파일 데이터는 영구 삭제된다는 확신을줍니다. SDelete는 파일 데이터를 안전하게 삭제하지만 사용 가능한 디스크 공간에있는 파일 이름은 삭제하지 않습니다.
파일을 마우스 오른쪽 버튼으로 클릭하면 Windows 7에 컨텍스트 메뉴 항목을 추가하고 싶었습니다. 지금까지 상황에 맞는 메뉴에서 프로그램을 삭제할 수 있지만 옵션 매개 변수를 전달하지 않고 호출 만합니다.
- windowKey + R : 실행 창을 엽니 다. regedit.exe를 입력하여 레지스트리 편집기를 엽니 다.
- HKEY_CLASSES_ROOT * \ shell \로 이동하십시오.
- "sDelete : 3 Passs"라는 새 키를 만듭니다.
- 새 키를 마우스 오른쪽 단추로 클릭하고 다른 새 키를 작성하고 이름을 "command"로 지정하십시오.
- (기본값)을 두 번 클릭하고 다음 명령 "c : \\ windows \\ system32 \\ sdelete.exe" "% 1"을 입력하십시오.
(업데이트 : 아래 솔루션)
이 시점에서 파일을 마우스 오른쪽 버튼으로 클릭하고 안전하게 삭제할 수 있지만 기본값은 1 패스입니다. 나는이 행동을 받아들이기에는 너무 정당하지 않은 편집증이다. 이제 sDelete에서 수행 할 패스 수를 지정하는 매개 변수 옵션을 전달하기 위해 몇 가지 다른 작업을 시도했습니다. 예를 들어 "-p 3"이라고하면 세 번의 패스가 지정됩니다.
그래도이 작업을 수행하는 방법을 알 수 없습니다. 나는 그것을 가지고 있다고 생각했지만 그것이 옳지 않다는 것을 깨달았습니다.
이런 식으로 상황에 맞는 메뉴를 통해 프로그램 호출에 옵션 매개 변수를 전달할 수 있습니까?
업데이트 : 문제는 매개 변수에 대한 SYNTAX에 있습니다.
나는 그것을 알아. 다양한 변형뿐만 아니라 제안한 작업을 수행했지만 아무것도 작동하지 않습니다. "-p 3"이 작동하지 않습니다. 오류가 발생하거나 프로그램을 열도록 지정하라는 창이 나타납니다.
- (기본값)을 두 번 클릭하고 다음 명령을 입력하십시오.
"c : \\ windows \\ system32 \\ sdelete.exe" "-p" "3" "% 1"사용
"c : \\ windows \ system32 \\ sdelete.exe"가 아님 "-p 3" "% 1"
"c : \\ windows \\ system32 \\ sdelete.exe -p 3" "% 1"이 아님
"c : \\ windows \\ system32 \\ sdelete.exe -p 3 % 1"이 아닌
c : \\ windows \\ system32 \\ sdelete.exe -p 3 % 1 아님
공백을 포함하면 문제가 발생합니다. 실제로는 의미가 있습니다. Windows는 공백을 무시하지만 공백이 문자열 안에 포함되면 프로그램은 문자열을 제한된 미리 정해진 목록과 일치시킵니다. 정확한 경기가 예상됩니다. "-p 3"은 "-p" "3"과 같지 않습니다. 문자열 "-p 3"과 매개 변수를 일치시킬 때 "p 3"이라는 옵션이 없습니다. 오히려 우리는 "-p"옵션을 제공하여 프로그램에 값을 전달하기 위해 프로그램에 '듣기'하도록 지시해야합니다. -기호로 시작하지 않으면 프로그램은 파일 이름으로 해석합니다.
따라서 일반적으로 cmd 입력에 입력 한 문자열에서 구문 분석 할 모든 인수를 분리하면 올바르게 초기화하는 방법입니다.