Я пытаюсь создать простой (или, по крайней мере, я думал) пакетный файл для поиска файлов определенного типа файла, а затем создать ярлыки, чтобы открыть их с помощью конкретной программы.Создание ярлыка с партией и 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, поэтому мне, вероятно, не хватает чего-то довольно глупого. Пожалуйста помоги.
спасибо.
Спасибо за то, что вы указали проблему %% f и %% i, я переписал код, чтобы удалить специфику программы, но скопировал и вставил биты из оригинала. Я отредактировал свой пример выше, но не ошибся в оригинале. Что вы хотите использовать [%% ~ i], что бы это сделать? Я сделал другие изменения, которые вы предлагали, но все же получал те же результаты. Спасибо за ваш ответ. – user1113827
%% ~ i удаляет двойные кавычки из значения %% i, если значение уже окружено двойными кавычками. Во всяком случае, моим советом было бы сначала заменить команду createShortcut командой echo и убедиться, что ваш командный файл отлично работает, прежде чем переходить к поиску проблем в вашем VBScript. –