2011-12-23 6 views
3

특정 파일 형식의 파일을 찾고 특정 프로그램을 사용하여 파일을 열 수있는 간단한 (또는 최소한 생각한) 배치 파일을 만들려고합니다.배치 및 vbs로 바로 가기 만들기

파고가 많이 난 후에 VBScript를 사용하는 것이 가장 좋았으므로 간단한 스크립트를 만들어서 나를 위해 단축키를 만들었습니다. 이것은 작동하지 않아서 누군가 내가 왜 그런지 말할 수 있기를 바랬습니다. 고맙습니다.

MakeShortcuts.bat :

SET ShortcutPath=c:\shortcuts\ 
SET ProgramPath="c:\windows\notepad.exe" 
SET SearchBaseDir="C:\Documents and Settings\" 

FOR /R %SearchBaseDir% %%i IN (*.gba) DO (
createShortcut "%ShortcutPath%Open %%~ni.lnk" "%ProgramPath%" "%%i" 
) 

createShortcut.vbs :

set obShell = CreateObject("WScript.Shell") 
sShortcut = obShell.ExpandEnvironmentStrings(WScript.Arguments.Item(0)) 
sTargetPath = obShell.ExpandEnvironmentStrings(WScript.Arguments.Item(1)) 
sArgument = obShell.ExpandEnvironmentStrings(WScript.Arguments.Item(2)) 
set shortcut = obShell.CreateShortcut(sShortcut) 
shortcut.TargetPath = sTargetPath 
shortcut.Arguments = sArgument 
shortcut.Save 

좋아 내가 MakeShortcuts.bat을 실행할 때, 그래서 나에게 메시지를 줄 [시스템이 지정된 드라이브를 찾을 수 있습니다.] 명령 줄에서.

바로 가기가 제대로 작동하지 못하게하는 인수 주위에 따옴표가없는 것을 제외하면 예상대로 바로 가기를 만듭니다. 나는 또한 위의 오류 메시지와 관련이있을 수 있습니다 생각합니다.

저는 VBScript에 새롭기 때문에 아마 뭔가 바보 같은 것을 놓치고있을 것입니다. 도와주세요.

감사합니다.

답변

1

문제가 VBScript에있는 것으로 의심됩니다. 아마도 배치 파일에있는 것 같습니다. 당신이 SearchBaseDir에 할당 값은 다음과 같이 따옴표로 묶어야합니다 :

SET SearchBaseDir="C:\Documents and Settings\" 

그런 다음, 당신은 당신이 createShortcut에 전달할 매개 변수에서 따옴표를 제거해야합니다.

둘 다 일치하지 않기 때문에 %% i 또는 %% f를 사용할지 여부를 결정해야합니다. %% i를 %% f로 변경하거나 %% f에서 %% i로 이름을 바꿉니다.

마지막으로, 나는 이것에 대해 절대 확신하지는 않지만, 이중 따옴표를 없애기 위해 마지막 %% f를 %% ~ f로 대체해야 할 수도 있습니다.

+0

%% f 및 %% i 문제를 지적 해 주셔서 감사합니다. 프로그램의 특성을 제거하기위한 코드를 다시 작성했지만 원본에서 복사하고 붙여 넣은 비트는 다시 작성해야합니다. 위의 예를 편집했지만 원래의 실수는 없습니다. [%% ~ i] 무슨 뜻인가요? 나는 당신이 제안한 다른 변화를 만들었지 만 여전히 같은 결과를 가지고 있습니다. 그래도 답장을 보내 주셔서 감사합니다. – user1113827

+0

%% ~ 값이 이미 큰 따옴표로 묶여 있으면 %% i의 값에서 큰 따옴표를 제거합니다. 어쨌든, 내 조언은 먼저 echo 명령으로 createShortcut 명령을 대체하고 VBScript에서 문제를 찾으러 나아 가기 전에 배치 파일이 완벽하게 작동하는지 확인하는 것입니다. –