Как создать ярлык на рабочем столе из командного файла

6592
Morten Kahr

Я знаю, что есть много сообщений по этому вопросу, но есть небольшой поворот в том, что мне нужно сделать.

Я могу понять, как создать ярлык с таким аргументом:
"C:\Program Files\My App\App.exe" /s

Но мне нужно применить путь к файлу, заключенному в "", в качестве аргумента, подобного этому:
"C:\Program Files\My App\App.exe" "c:\Data\File.ext"
Обратите внимание на двойные кавычки.

Я не могу найти примеры VBscript, иллюстрирующие это поведение.
Это то, на чем я основал свой текущий сценарий.

@echo off  set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"  echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% echo sLinkFile = "%USERPROFILE%\Desktop\myshortcut.lnk" >> %SCRIPT% echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% echo oLink.TargetPath = "D:\myfile.extension" >> %SCRIPT% echo oLink.Save >> %SCRIPT%  cscript /nologo %SCRIPT% del %SCRIPT% 
1
Какой код / ​​метод вы используете в настоящее время для создания ярлыка? Кстати: VBScript! = Пакетный файл Ƭᴇcʜιᴇ007 10 лет назад 1
@ techie007 - я в курсе. Я вызываю временный VBScript из командного файла. Как то так http://superuser.com/a/455383/257686 Morten Kahr 10 лет назад 0
Здесь проверьте это обсуждение http://stackoverflow.com/questions/346107/creating-a-shortcut-for-a-exe-from-a-batch-file vembutech 9 лет назад 0

2 ответа на вопрос

1
user257843

Душа была в тройных цитатах:

По какой-то причине

echo oLink.arguments = Chr (34) & "c: \ Data \ File 1.ext" & Chr (34)

Делает файл 1.ext открытым.

0
Ƭᴇcʜιᴇ007

Попробуйте добавить

echo oLink.arguments = "c:\Data\File.ext"

До oLink.save.

Если вы обнаружите, что вам все еще нужно включить кавычки (я не думаю, что вы это сделаете), вы можете утроить их в командном файле.

echo oLink.arguments = """c:\Data\File 1.ext"""

Самые внешние кавычки - это те, которые ограничивают строку, а внутренние двойные кавычки, заключенные в двойные кавычки, должны помещать двойные кавычки в строку.

Мне нужны кавычки, поскольку App.exe разделяет аргумент, если он содержит пробелы. Т.е. C: \ Data \ File 1.ext Morten Kahr 10 лет назад 0
@MortenKahr Обычно я использую Chr (34) вместо двойных кавычек для внешней пары, как показано [на stackoverflow] (http://stackoverflow.com/a/4192714/935614) nixda 10 лет назад 0
@nixda Так что эхо oLink.arguments = Chr (34) c: \ Data \ File 1.ext Chr (34)? Morten Kahr 10 лет назад 0
@MortenKahr `echo oLink.arguments = Chr (34) &" c: \ Data \ File 1.ext "& Chr (34)` nixda 10 лет назад 0
Скорректирован мой ответ (после тестирования). Ƭᴇcʜιᴇ007 10 лет назад 0
@ nixda (techie007) Попробую оба утром. большое спасибо Morten Kahr 10 лет назад 0