VBSにてファイルのフルパスを取得する対応を行ったので備忘録的に。
Windows10にて動作確認しています。
引数に渡したファイルをクリップボードに入れますので、SendToコマンドとして利用するのがよき。
ドライブマウントしているファイルについては、マウント先のパスに変換して取得します。
Dim i, arg, wsh
set arg = WScript.Arguments
set wsh = CreateObject("WScript.Shell")
if arg.count = 0 then wscript.quit
arg = exchangeDrivePath(arg)
if arg = ":::" then
for i = 0 to 100
if wsh.appactivate ("argument is as follows") then Exit for
next
wsh.sendkeys "^c{ENTER}"
else
wsh.run "wscript.exe """ & WScript.ScriptFillName & """ :::"
inputbox "argument is as follows","argument is as follows",arg
end if
Function exchangeDrivePath(path)
Dim driveName, mountPath, exPath, i
set WIN = WScript.CreateObject("WScript.Network")
set oDrives = WIN.EnumNetworkDrives
exPath = path
for i = 0 to oDrives.Count -1 step 2
driveName = oDrives.Item(i)
mountPath = oDrives.Item(i+1)
set objRegExp = New RegExp
objRegExp.Pattern = driveName
exPath = objRegExp.Replace(exPath, mountPath)
set objRegExp = Nothing
next
exchangeDrivePath = exPath
End Function