Verstecke das cmd Fenster mit ShellExecute-Methode . Nächste Registrierungseinstellung funktioniert für eine einzelne Datei:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\MyCopyAsPath]
[HKEY_CLASSES_ROOT\*\shell\MyCopyAsPath\command]
@="wscript D:\\VB_scripts\\SU\\1007076.vbs \"%1\""
woher D:\VB_scripts\SU\1007076.vbs liest sich wie folgt:
option explicit
On Error GoTo 0
If WScript.Arguments.Count = 1 Then
Dim objShell
Set objShell = CreateObject("shell.application")
objShell.ShellExecute "cmd.exe" _
, "/C echo(" & WScript.Arguments(0) & "|clip", "", "open", 0
Set objShell = nothing
Else
MsgBox "wrong numer of parameters"
End If
Wscript.Quit
Das obige Skript gibt den vollständigen Pfad einer einzelnen Datei zurück (oder Ziel einer Dateiverknüpfung) und fügt hinzu CRLF (Wagenrücklauf und Zeilenvorschub). Sie könnten das weglassen CRLF mit set /P Trick wie folgt:
objShell.ShellExecute "cmd.exe" _
, "/C <NUL set /P =""" & WScript.Arguments(0) & """|clip", "", "open", 0
Nächste Verbesserung, um den Pfad in einem Paar zu umgeben " Anführungszeichen:
objShell.ShellExecute "cmd.exe" _
, "/C <NUL set /P =""""" & WScript.Arguments(0) & """""|clip", "", "open", 0
Zu Ihrer Information, hier ist der Registrierungsschlüssel, der die gespeichert hat Copy as Path Kontextmenü:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\CopyAsPathMenu]
"ProgrammaticAccessOnly"="Apartment"
[HKEY_CLASSES_ROOT\*\shell\CopyAsPathMenu\DropTarget]
"CLSID"="{f3d06e7c-1e45-4a26-847e-f9fcdee59be0}"
ShiftWenn Sie mit der rechten Maustaste auf die Datei / den Ordner klicken (oder sogar auswählen), und wählen SieCopy As Path.