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

1

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

Я могу понять, как создать ярлык с таким аргументом:
"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
@ techie007 - я в курсе. Я вызываю временный VBScript из командного файла. Примерно так: superuser.com/a/455383/257686
Мортен Кар
Вот эта дискуссия stackoverflow.com/questions/346107/…
vembutech

Ответы:

1

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

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

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

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

user257843
источник
0

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

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

До oLink.save.

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

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

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

Ƭᴇcʜιᴇ007
источник
Мне нужны кавычки, поскольку App.exe разделяет аргумент, если он содержит пробелы. Т.е. C: \ Data \ File 1.ext
Мортен Кар
@MortenKahr Обычно я использую Chr (34) вместо двойных кавычек для внешней пары, как показано в stackoverflow
nixda
@nixda Так что эхо oLink.arguments = Chr (34) c: \ Data \ File 1.ext Chr (34)?
Мортен Кар
@MortenKahrecho oLink.arguments = Chr(34) & "c:\Data\File 1.ext" & Chr(34)
nixda
Скорректирован мой ответ (после тестирования).
Ƭᴇcʜιᴇ007