특정 바로 가기로 열리는 프로그램이 있지만 바로 가기가 매개 변수를 응용 프로그램으로 보내는 것 같습니다. 대상 디렉토리로 직접 이동하여 두 번 클릭하면 작동하지 않습니다. 그러나 명령 줄을 사용하고 특정 인수를 전달하면 응용 프로그램이 올바르게 열립니다.
응용 프로그램을 사용하여 특정 파일 형식을 열고 싶지만 응용 프로그램에 매개 변수가 있어야합니다. 그렇지 않으면 작동하지 않습니다. 이런 종류의 일을 할 수 있습니까?
특정 바로 가기로 열리는 프로그램이 있지만 바로 가기가 매개 변수를 응용 프로그램으로 보내는 것 같습니다. 대상 디렉토리로 직접 이동하여 두 번 클릭하면 작동하지 않습니다. 그러나 명령 줄을 사용하고 특정 인수를 전달하면 응용 프로그램이 올바르게 열립니다.
응용 프로그램을 사용하여 특정 파일 형식을 열고 싶지만 응용 프로그램에 매개 변수가 있어야합니다. 그렇지 않으면 작동하지 않습니다. 이런 종류의 일을 할 수 있습니까?
답변:
@jtpereyda와 동일한 문제가 발생했으며 @bobbymcr의 솔루션도 저에게 효과적이지 않았습니다. 명령에 node.exe가 필요없이 node.js 스크립트에 모든 명령 줄 매개 변수를 전달하려고했습니다.
문제는 Open With
대화 상자를 통해 프로그램을 확장명과 이미 연결 한 경우 파일 확장명 연결 대신 응용 프로그램 연결을 생성한다는 것입니다. 그리고 응용 프로그램 연결이 우선합니다.
레지스트리 편집이 마음에 들지 않으면 (Default)
다음 경로에서 키를 수정할 수 있습니다 .
HKEY_CLASSES_ROOT\Applications\node.exe\shell\open\command
node.exe
조정중인 응용 프로그램으로 교체해야합니다 .
또는 폴더에서 응용 프로그램 폴더를 HKEY_CLASSES_ROOT\Applications
완전히 삭제하면 ftype
연결이 시작됩니다.
%*
나머지 지정되지 않은 명령 행 인수를 전달하거나 전혀 사용하지 않는 것을 사용해야 합니다. 그렇게 "%2" "%3" "%4" "%5"
하면 명령 줄 인수를 지정하지 않으면 응용 프로그램에 5 개의 빈 문자열 매개 변수가 전달됩니다.
마지막으로, 수동으로 레지스트리를 수정하는 것이 좋지 않으면 Nirsoft-FileTypesManager- http ://www.nirsoft.net/utils/file_types_manager.html에서 프리웨어 도구를 사용할 수 있습니다
파일 연결은 첫 번째 확장자 열에 텍스트없이 목록 맨 위에 나타납니다. 목록에서 실행 파일 이름을 찾아서 선택 command line
하여 open
조치 이름 의 필드 를 수정하십시오 .
windows7에서는 재부팅이나 응용 프로그램 재시작없이 변경 사항이 즉시 반영되었습니다. 그러나 Nirsoft 유틸리티에는 수정시 "데스크톱 새로 고침"기능이 있으므로 Vista 또는 이전 OS 버전이 데이터를 캐시 할 수 있다고 생각합니다. 이 경우 유틸리티가 더 나은 방법 일 것입니다. 그렇지 않으면 변경 사항을 확인하기 위해 로그 오프했다가 로그온해야합니다.
"C:\Program Files\nodejs\node.exe" "%1"%*
참고 : %*
값은 따옴표가 아니며 값과 이전 큰 따옴표 사이에 공백이 없습니다.
HKEY_CLASSES_ROOT\.ulaw
경우를 대비하여 regedit에서 키 를 삭제 .ulaw
했습니다.
HKEY_CLASSES_ROOT
참조하십시오. Microsoft 자체의 많은 문서가 Windows 2000 경에 도입 된 HKCR에 대한 통합 된 견해보다
당신과이 할 수있는 assoc
및 ftype
프롬프트 명령에. 오픈 상승 프롬프트 명령을하고 다음을 시도하십시오
ftype MyFileType = C : \ MyDir \ MyProgram.exe / arg1 / arg2 "% 1" assoc .xyz = MyFileType
.xyz
확장 프로그램을 확장 MyProgram.exe
하고 명령 줄 /arg1 /arg2 [filename.xyz]
을 프로그램에 전달 하여 확장 프로그램을 실행합니다.
.ulaw
로 파일을 sox
그것에서 미리 정의 된 인수를 사용하여. 이전 응용 프로그램을 삭제하는 것 외에도 HKEY_CLASSES_ROOT\.ulaw
파일 유형을 정의하고있는 파일 도 삭제했습니다 .
assoc
및 ftype
기존 명령입니다. Windows XP, 7, 8에 추가 된 파일 연결 확장명으로 업데이트되지 않았습니다. 시스템 키 "HKLM \ Software \ Classes"아래의 파일 연결 및 ProgId 키만 수정합니다. 우선 순위를 취하는 사용자 별 HKCU 설정 또는 "응용 프로그램"및 "SystemFileAssociations"와 같은 최신 하위 키 또는 "RegisteredApplications"의 응용 프로그램 별 기능 키를 읽거나 수정하지 않습니다. 또한 "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts"에서 사용자의 선택을 읽거나 수정하지 않습니다.
질문을 한 사람이 Best answer가 실제로 작동하지 않는다고보고합니다.
XP에 대해 알아 냈으며 이후 OS에 적용될 수 있습니다.
cmd 프롬프트에는 assoc
,, 두 가지 명령이 필요합니다 ftype
.
이 두 가지는 관련 내용을 표시 한 다음 연결을 편집 할 수 있지만 꼬임이 있으며 MS 명령이 잘못되었거나 불완전한 것으로 보입니다. 알려진 베테랑 응용 프로그램에서 문서화되지 않은 연결 스타일을 알면서 경고했습니다. 왜 그렇습니까?
이 예에서는 많은 인수를 연관 프로그램에 전달할 수 있습니다.
ftype name_of_assoc="C\blah\aprog.exe" "%1" "%*"
오타가 아닙니다 "%1" "%*"
. 퍼센트 스타는 선행 퍼센트 1 없이는 작동하지 않습니다 .
로그 아웃 할 필요없이 즉시 적용됩니다.
3을 arg로 전달합니다.]
myfile.wotsit file1 file2 file3
그것을하지 않았지만 프로그램에 플래그가 필요한 경우 다음 외부 따옴표가 -m을 전달하는 것처럼 보입니다.
ftype name_of_assoc="C\blah\aprog.exe" -m "%1" "%*"
%1 %*
따옴표없이 필요 합니다 ! 젠장
Windows7의 이전 버전의 PSP와 비슷한 문제가있었습니다.
이 솔루션 (레지스트리에서 셸 \ open \ 명령 줄 변경)이 작동했지만 "C : \ MyFolderName \ PSP.EXE"구문이 있어야했습니다. % 1 NO QUOTES AROUND % 1 그렇지 않으면 상수로 해석됩니다.
가장 좋은 해결책은 아니지만 가장 쉬운 방법은 배치 파일을 사용하는 것입니다.
이와 같은 bat 파일을 작성하고 파일 확장자에 맞게 기본 프로그램을 설정하십시오. 그리고 예, 시작 후 빈 따옴표가 필요합니다.
{앱 이름} .bat
start "" "{app path}" %1 /edit
예:
BCompareEdit.bat
start "" "C:\Program Files\Beyond Compare 4\BCompare.exe" %1 /edit
Windows 바로 가기를 만들고 다음 템플릿을 사용하십시오.
"C:\Windows\system32\mspaint.exe" "c:\data\basejpg.jpg" %1
xyz.jpg
?