Kopiere Namen mit Pfad in Zwischenablage mit '\', '\\' oder '/'

German support forum

Moderators: white, Hacker, Stefan2

Fla$her
Power Member
Power Member
Posts: 2298
Joined: 2020-01-18, 04:03 UTC

Re: Kopiere Namen mit Pfad in Zwischenablage mit '\', '\\' oder '/'

Post by *Fla$her »

2tuska
Es hat keinen Sinn, etwas an meinem Code zu ändern. Wissen Sie, wie Sie den kopierten Buttoncode über das Kontextmenü in Buttonbar einfügen? Sie müssen nichts anderes tun. Man kann nicht den gesamten Befehl im ersten Feld zu platzieren — das ist ein Fehler.
P. S. %WL im zweiten Feld bezieht sich auf die allgemeine Überprüfung, nicht auf den spezifischen Code. Wir kehren nicht mehr dazu zurück.
Overquoting is evil! 👎
User avatar
tuska
Power Member
Power Member
Posts: 3758
Joined: 2007-05-21, 12:17 UTC

Re: Kopiere Namen mit Pfad in Zwischenablage mit '\', '\\' oder '/'

Post by *tuska »

Fla$her wrote: 2023-03-29, 00:03 UTC 2tuska
Es hat keinen Sinn, etwas an meinem Code zu ändern.
Wissen Sie, wie Sie den kopierten Buttoncode über das Kontextmenü in Buttonbar einfügen? Sie müssen nichts anderes tun.
Man kann nicht den gesamten Befehl im ersten Feld zu platzieren — das ist ein Fehler.
Meine laienhafte Versuche an einem Code etwas zu ändern beginnen manchmal dann, wenn ein Code nicht das erwartete Ergebnis bringt.
Mir ist bekannt wie man einen Buttoncode in die Buttonbar einfügt.

Ich halte jetzt folgendes fest:
Der hier verlautbarte Code: "Zuletzt geändert von Fla$her am 29.03.2023 1:04, insgesamt 2-mal geändert."
funktioniert bei mir NICHT unter Windows 11 Pro (x64) Version 22H2 (OS build Build 22621.1413) und TC 10.52 x64/x86.

Ich erhalte jetzt wieder die Fehlermeldung, die ich bereits beim ersten Test hatte:

Code: Select all

Zeile:	 1
Zeichen: 134
Fehler:  Hexadezimalziffer erwartet
Code:    0
URL:
Ehrlich gesagt frage ich mich, ob es überhaupt Sinn macht - es sei denn für Sie aus sportlichen Gründen -
weiterhin nach einer dritten Lösung zu suchen, wenn ohnehin bereits zwei perfekte Lösungen vorhanden sind.

Zumindest meine Geduld bezüglich weiterer Tests erschöpft sich langsam.
Vielleicht könnte aber auch jemand anderer mit einer anderen Windows Version den Code einmal antesten?
(Copy/paste Buttoncode u. Klick auf Button u. Strg+V reicht ja bereits).

Vom Threadstarter hat man bis jetzt nichts mehr gelesen...
Fla$her
Power Member
Power Member
Posts: 2298
Joined: 2020-01-18, 04:03 UTC

Re: Kopiere Namen mit Pfad in Zwischenablage mit '\', '\\' oder '/'

Post by *Fla$her »

2tuska
Leider habe ich keine Erfahrung mit Windows 11, daher habe ich keine Ahnung, wie js in mshta sonst funktionieren könnte.
Und ich habe ein Beispiel gegeben, um nur zusätzliche oder fehlende Dienstprogramme auszuschließen, damit der Code auch unter XP funktioniert.
Overquoting is evil! 👎
User avatar
Stefan2
Power Member
Power Member
Posts: 4158
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Kopiere Namen mit Pfad in Zwischenablage mit '\', '\\' oder '/'

Post by *Stefan2 »

 


Dieser Code von oben funktioniert bei mir auf Win11
Fla$her wrote: 2023-03-28, 15:56 UTC Last edited by Fla$her on Wed Mar 29, 2023 1:04, edited 2 times in total.

Ein weiteres Beispiel, nur für den Fall:

Code: Select all

TOTALCMD#BAR#DATA
mshta.exe "javascript:with(new ActiveXObject('Scripting.FileSystemObject')){clipboardData.setData('text',
openTextFile(getSpecialFolder(2)+'\\'+'%WL'.replace(/.+(?=CMD\w+\.tmp$)/,''),1,0,-1).readAll().slice(0,-2).replace(/\\/g,'/'))};close()"
wcmicon2.dll,45
Die vollständigen Dateinamen mit '/' kopieren

1


Der Teil mit "openTextFile" und "'%WL'" steht dabei in der Parameterzeile und dadurch wird auch der TC-Parameter '%WL' von TC aufgelöst.

Code: Select all

Kommando: mshta.exe "javascript:with(new ActiveXObject('Scripting.FileSystemObject')){clipboardData.setData('text',
Parameter: openTextFile(getSpecialFolder(2)+'\\'+'%WL'.replace(/.+(?=CMD\w+\.tmp$)/,''),1,0,-1).readAll().slice(0,-2).replace(/\\/g,'/'))};close()"
Startpfad:
Icondatei: wcmicon2.dll , 45
Tooltip: Die vollständigen Dateinamen mit '/' kopieren


Das Kommando wird vom TC ja sowieso mit dem Parameter zu einer einzigen langen Kommandozeile zusammengesetzt,
somit kann die Trennung von Kommando und Parameter manchmal fließend sein, und man kann es auch so aufteilen:
Kommando: mshta.exe
Parameter: "javascript:with(new ActiveXObject('Scripting.FileSystemObject')){clipboardData.setData('text',openTextFile(getSpecialFolder(2)+'\\'+'%WL'.replace(/.+(?=CMD\w+\.tmp$)/,''),1,0,-1).readAll().slice(0,-2).replace(/\\/g,'/'))};close()"



Das Beispiel (mit cm_CopyFullNamesToClip kopiert)
C:\Windows\System32\WindowsPowerShell\v1.0\Examples\profile.ps1
wird durch diesen Button kopiert als:
C:/Windows/System32/WindowsPowerShell/v1.0/Examples/profile.ps1






Ich glaube, ein PowerShell-Beispiel gab es hier noch nicht:

Code: Select all

TOTALCMD#BAR#DATA
powershell
TYPE '%WL' | Foreach{$_ -Replace [regex]::escape('\'), '/'} | clip
C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe
TYPE '%WL' | Foreach{$_ -Replace [regex]::escape('\'), '/'} | clip

0
-1
(bei Umlauten oder so sollte statt "clip.exe" besser "set-clipboard" genommen werden)


und ein AutoHotkey-Beispiel fehlt auch noch...
User avatar
tuska
Power Member
Power Member
Posts: 3758
Joined: 2007-05-21, 12:17 UTC

Re: Kopiere Namen mit Pfad in Zwischenablage mit '\', '\\' oder '/'

Post by *tuska »

2Stefan2
Danke für das testen des Codes von User Fla$her!
Ich kann mir nicht erklären, warum dieser Code hier bei mir nicht funktioniert (betrachte das Thema aber als erledigt für mich).

Dein PowerShell-Beispiel funktioniert bei mir perfekt mit "set-clipboard" (bei "clip" nur ohne Unicode-Unterstützung).
Ich schlage daher vor, dass Du den Code von clip auf set-clipboard änderst.
User avatar
Stefan2
Power Member
Power Member
Posts: 4158
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Kopiere Namen mit Pfad in Zwischenablage mit '\', '\\' oder '/'

Post by *Stefan2 »

tuska wrote: 2023-03-29, 09:48 UTC Dein PowerShell-Beispiel funktioniert bei mir perfekt mit "set-clipboard" (bei "clip" nur ohne Unicode-Unterstützung).
Ich schlage daher vor, dass Du den Code von clip auf set-clipboard änderst.
Tja, das ist nicht immer sooo einfach,
das "set-clipboard" gibt es bei älteren PowerShell-Versionen nicht standardmäßig,
(man benötigte die Pscx - PowerShell Community Extensions, und da hieß der Befehl "Out-Clipboard")
somit bekämen die Kollegen dort dann eine Fehlermeldung beim Test dieses Codes :wink:





EDIT:
https://www.windowspro.de/script/get-set-clipboard-daten-ueber-zwischenablage-kopieren-powershell
Die in Windows 10 und Server 2016 enthaltene PowerShell 5.0 bringt einige neue Utilities, . . . .
. . . . Dem Datenaustausch über die Zwischenablage dienen die Cmdlets Get-Clipboard und Set-Clipboard. . . .

 
User avatar
tuska
Power Member
Power Member
Posts: 3758
Joined: 2007-05-21, 12:17 UTC

Re: Kopiere Namen mit Pfad in Zwischenablage mit '\', '\\' oder '/'

Post by *tuska »

Stefan2 wrote: 2023-03-29, 09:54 UTC
tuska wrote: 2023-03-29, 09:48 UTC Dein PowerShell-Beispiel funktioniert bei mir perfekt mit "set-clipboard" (bei "clip" nur ohne Unicode-Unterstützung).
Ich schlage daher vor, dass Du den Code von clip auf set-clipboard änderst.
Tja, das ist nicht immer sooo einfach,
das "set-clipboard" gibt es bei älteren PowerShell-Versionen nicht standardmäßig,
somit bekämen die Kollegen dort dann eine Fehlermeldung beim Test dieses Codes :wink:
Ahh, OK, danke für die Info :)
Du merkst schon, hier spricht der Laie :oops:

Bisherige Lösungen:
- Lst2Clip.exe (ohne Unicode)
- CopyFullNamesWithSlash.vbs (mit Unicode)
- lst2clip-u.exe (mit Unicode)
- mshta.exe "javascript..." (mit Unicode) - funktioniert in Windows 11 bei Stefan2 (nicht bei mir unter Windows 11 Pro)
- PowerShell (mit Unicode)
Post Reply