Как манипулировать аргумент в VB Script?

Я пытаюсь автоматизировать создание ярлыка, но не знаю, как получить имя файла из аргумента. код запускается как:

cscript shortcut.vbs "c: \ folder \ targetfile.ext"

Set objFS=CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
strFile= objArgs(0)
Set objFile = objFS.OpenTextFile(strFile)
Set objFile = objFS.GetFile(strFile)
WScript.Echo objFile.Path 

Set oWS = WScript.CreateObject("WScript.Shell") 
sLinkFile = "c:\myfolder\myshortcut.lnk" 
Set oLink = oWS.CreateShortcut(sLinkFile) 
oLink.TargetPath = objFile.Path 
oLink.Save

возможно ли в следующей строке объединить указанную пользователем папку и автоматически сгенерированное имя файла из аргумента с расширением.lnk

sLinkFile = "c:\myfolder\myshortcut.lnk"

что-то вроде этого:

sLinkFile = "c:\myfolder\" + filenamefromargument(e.g targetfile) + ".lnk"

спасибо заранее:)

1 ответ

Решение

Первое предложение @Noodles будет работать - а его второе предложение просто означает, что вы должны назначить strFile = objArgs(0) прежде чем использовать его.

Вы просто путаете всех своими "псевдо-примерами"
Вы сначала указываете "c:\folder\targetfile.ext" в качестве аргумента
затем sLinkFile = "c:\myfolder\myshortcut.lnk" где я думаю ты имел ввиду sLinkFile = "c:\myfolder\myshortcut.ext"

Второе, что вам нужно, это посмотреть на методы FileSystemObject, чтобы извлечь папку и базовое имя, а затем добавить ваше расширение.

Что-то вроде:

После strFile= objArgs(0)

Вставьте этот код:

With objFS    
   strLinkFile = .GetParentFolderName(strFile) & .GetBaseName(strFile) & ".lnk"
End With
Другие вопросы по тегам