A alma foi as citações triplas:
Por alguma razão, o
echo oLink.arguments = Chr(34) & "c:\Data\File 1.ext" & Chr(34)
Faz o arquivo 1.ext abrir.
Eu sei que há muitas postagens sobre essa questão, mas há um pequeno desvio para o que preciso fazer.
Eu posso descobrir como criar um atalho com um argumento como este:
"C:\Program Files\My App\App.exe" /s
Mas eu preciso aplicar o caminho de um arquivo envolto em "" como argumento como este:
"C:\Program Files\My App\App.exe" "c:\Data\File.ext"
Observe as aspas duplas.
Não consigo encontrar exemplos de VBscript ilustrando esse comportamento.
Isso é o que eu baseei meu script atual.
@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%
A alma foi as citações triplas:
Por alguma razão, o
echo oLink.arguments = Chr(34) & "c:\Data\File 1.ext" & Chr(34)
Faz o arquivo 1.ext abrir.
Tente adicionar
echo oLink.arguments = "c:\Data\File.ext"
Antes do oLink.save.
Se você achar que ainda precisa incluir as aspas (não acho que você faria), poderá triplicá-las no arquivo em lote.
echo oLink.arguments = """c:\Data\File 1.ext"""
As aspas mais externas são as que delimitam a string, e as aspas duplas internas são para colocar as aspas duplas dentro da string.