STRG + C für eine Datei / einen Ordner. Wie erhalte ich den Dateinamen in einem Stapel? (Lesen Sie die Zwischenablage-Dateinamen aus dem Stapel.)

495
Basj

Wenn Sie Copy( CTRL+ C) für eine Datei oder einen Ordner tun, dann in einigen Programmen, aber nicht in allen (z. B. in der Adressleiste des Windows-Explorers auch mit der Indizierungssoftware Everything), beim Einfügen ( CTRL+ V) den Dateinamen oder das Verzeichnis Name ist wie Text, wie diese eingefügt: "D:\Test\Temp".

Frage: Wenn Sie eine Datei oder einen Ordner in Windows Explorer CTRL+ Cbearbeiten, wie wird der Dateiname in einer Stapeldatei abgerufen test.bat, die Sie unmittelbar danach ausführen?

Ich habe es mit clip.exe versucht, wie in der Access-Zwischenablage in der Windows-Batchdatei vorgeschlagen , aber es hat nicht funktioniert: clip.exe scheint das Gegenteil zu tun (in die Zwischenablage schreiben).


Hinweis: Anders als Kopieren von Dateipfad in die Zwischenablage? (Die Antworten erfordern Drittanbieter-Software oder eine andere Hotkey-Lösung oder verwenden AutoHotkey.) Hier suche ich explizit nach einer Lösung, die im Batch funktioniert, mit der Standard-STRG + C (und nicht einem anderen Hotkey, ohne AutoHotkey usw.). ) und keine Software von Drittanbietern.

1
Mögliches Duplikat von [Wie kopiere ich den Dateipfad in die Zwischenablage?] (Https://superuser.com/questions/14974/how-to-copy-file-path-to-clipboard) WireGuy vor 5 Jahren 0
@WireGuy: Nein, siehe bearbeitete Frage. Basj vor 5 Jahren 0

4 Antworten auf die Frage

1
RalfFriedl

Sie können den vollständigen Pfadnamen erhalten, indem Sie diese Datei aus dem Explorer in das Befehlsfenster ziehen. Dadurch wird der vollständige Pfad eingefügt.

Ein Programm kann den Inhalt in verschiedenen Typen in die Zwischenablage einfügen. Word kann beispielsweise Text als einfachen Text und als formatierten Text platzieren. Einige Programme sind clever und extrahieren den Dateinamen, wenn Sie eine (Referenz auf eine) Datei in die Zwischenablage eingefügt haben. Leider funktioniert das Befehlsfenster nicht.

Das sieht vielversprechend aus, aber ich suche nach einer Lösung mit nur STRG + C als Benutzerinteraktion. (Kein Ziehen / Ablegen). Der Rest sollte nur von der .bat-Batchdatei erledigt werden. Basj vor 5 Jahren 0
Wenn Sie eine Stapeldatei ausführen, müssen Sie diese Dateien bereits in die Stapeldatei im Explorer ziehen und dort ablegen oder den Namen der Stapeldatei eingeben und dann auf cmd ziehen. Ich verstehe in diesem Fall nicht, was Sie unter "Wie bekommt man den Dateinamen in einer Batch-Datei test.bat" verstehen. Wenn Sie diese Namen in den Inhalt der Stapeldatei einfügen möchten, ist dies sinnlos. Andernfalls geben Sie sie wie Argumente weiter phuclv vor 5 Jahren 0
0
NOLFXceptMe

Wählen Sie eine Datei oder einen Ordner, drücken F2, dann verwenden Ctrl-C. Damit sollten Sie nur den Namen (wirklich den 'Basisnamen') der Datei oder des Ordners kopieren.

Ich kenne diesen Trick, aber ich suche nach einer Lösung, die mit der Standard-Tastenkombination STRG + C (und ohne F2) funktioniert. Außerdem suche ich den vollen Weg. Basj vor 5 Jahren 0
0
WireGuy

Sie können Shift+Right clickdie Datei im Explorer auswählen und "Als Pfad kopieren" auswählen:

Oder wenn Sie den Dateinamen auswählen und verwenden Ctrl+Shift+C.

Dadurch wird der Explorer angewiesen, die Informationen im CF_TEXT-Format anstelle des üblichen CF_HDROP-Formats in die Zwischenablage zu kopieren. Einige Programme wissen nicht, was mit dem CF_HDROP-Format zu tun ist, aber alle sollten das CF_TEXT-Format verstehen.

Danke für deine Antwort. Wie in der Frage erwähnt, suche ich nach einer Lösung mit STRG + C und dann später in einer .bat-Batchdatei über die Befehlszeile (ohne Drag / Drop-Datei zu cmd.exe). Basj vor 5 Jahren 0
In diesem Link finden Sie Informationen zum Einfügen in die Befehlszeile: https://www.howtogeek.com/howto/25590/how-to-enable-ctrlv-for-pasting-in-the-windows-command-prompt/ WireGuy vor 5 Jahren 0
Danke @WireGuy, ich benutze das schon. In meinem Kontext wird der Stapel jedoch nicht einmal angezeigt, sodass ich die cmd.exe nicht sehen muss, um sie manuell einzufügen. Basj vor 5 Jahren 0
Um herauszufinden, warum ich diese seltsamen Anforderungen habe, gibt es hier eine Lösung, die Python verwendet: https://superuser.com/questions/260740/are-there-any-gui-toolss-zu-manage-creating-symlinks#comment2033158_260740 Bekanntes Problem (Symlink mit GUI unter Windows erstellen). Ich habe versucht, dasselbe mit nur einem Stapel (ohne Python) zu tun, aber dafür muss ich in der Lage sein, den Dateinamen in einem Stapel zu erhalten;) Das ist die ganze Geschichte! Danke übrigens für Ihre Hilfe! Basj vor 5 Jahren 0
@Basj einfach per Drag & Drop die Dateien in die Batchdatei ziehen, ohne dass die cmd angezeigt werden muss. Wie wollen Sie sonst diese Dateinamen einfügen? phuclv vor 5 Jahren 0
0
Alex

Verwenden Sie powershelldiese Option in allen unterstützten Windows-Versionen anstelle der Legacy- cmdShell.
(Das versprach Microsoft in Zukunft zu entfernen).

powershellFunktion ausführen und verwenden:

Get-Clipboard 

Es wird Ihnen den Inhalt der Zwischenablage zurückgeben, während Set-ClipboardSie das Gegenteil tun - etwas in die Zwischenablage einfügen.

Wenn Sie nicht zu wechseln möchten PowerShell, können Sie es von Ihrem Batch-Skript aus nach Bedarf aufrufen:

 powershell -Command "& " 

um den Inhalt der Zwischenablage in Ihrem Skript abzurufen.

Ich bekomme dies in Windows 7: `Der Begriff 'Get-Clipboard' wird nicht als Name eines Cmdlets, function 'erkannt. Basj vor 5 Jahren 0
Get-Clipboard ist ein neues Cmdlet in [PowerShell 5.0] (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-clipboard?view=powershell-5.0). Windows 7 enthält PowerShell 2.0, das zu alt ist, um nützlich zu sein phuclv vor 5 Jahren 0
@Basj Wie bereits erwähnt, benötigen Sie eine neuere PowerShell-Version und mindestens .NET Framework 4.5 oder höher Alex vor 5 Jahren 0