CTRL + C su un file / cartella, come ottenere il nome file in un batch? (leggi i nomi dei file degli appunti dal batch)


1

Quando lo fai Copy( CTRL+ C) su un file o una cartella, quindi in alcuni programmi , ma non tutti (esempio: funziona nella barra degli indirizzi di Windows Explorer, anche con il software di indicizzazione Tutto), quando fai Incolla ( CTRL+ V), il nome file o la directory nome viene incollato come testo, come questo: "D:\Test\Temp".

Domanda: Se fai CTRL+ Csu un file o una cartella in Esplora risorse, come ottenere il suo nome file in un file batch test.batche esegui subito dopo?

Ho provato con clip.exe, come suggerito negli Appunti di accesso nel file batch di Windows , ma non ha funzionato: clip.exe sembra fare il contrario (scrivere negli appunti).


Nota: a differenza di Come copiare il percorso del file negli Appunti? (le sue risposte richiedono software di terze parti o una diversa soluzione di scelta rapida o uso AutoHotkey), qui sto esplicitamente cercando una soluzione che funzioni in batch, con lo standard CTRL + C (e non un altro tasto di scelta rapida, non utilizzando AutoHotkey, ecc. ) e nessun software di terze parti.



@WireGuy: No, per favore vedi la domanda modificata.
Basj,

Risposte:


1

Puoi ottenere il nome completo del percorso trascinando quel file dall'esploratore nella finestra dei comandi, questo inserirà il percorso completo.

Un programma può inserire il contenuto in diversi tipi negli appunti. Ad esempio, Word può posizionare il testo come testo normale e come testo formattato. Alcuni programmi sono intelligenti ed estraggono il nome del file dopo aver inserito un file (riferimento a) negli Appunti. Sfortunatamente il comando windows no.


Sembra promettente, ma sto cercando una soluzione con solo CTRL + C come interazione dell'utente. (Nessun trascinamento / rilascio). Il resto dovrebbe essere fatto solo dal file batch .bat.
Basj,

se si esegue un file batch, è già necessario trascinare e rilasciare tali file sul file batch in Explorer, oppure digitare il nome del file batch, quindi trascinare e rilasciare su cmd. Non capisco cosa intendi per "come ottenere il suo nome file in un file batch test.bat" in questo caso. Se vuoi incollare quei nomi nel contenuto del file batch, è inutile, altrimenti passarli come fanno gli argomenti come ho già detto
phuclv

0

Seleziona un file o una cartella, premi F2, quindi usa Ctrl-C. Ciò dovrebbe consentirti di copiare semplicemente il nome (in realtà il "basename") del file o della cartella.


Conosco questo trucco, ma sto cercando una soluzione che funzioni con lo standard CTRL + C (e senza F2). Inoltre, sto cercando il percorso completo.
Basj,

0

È possibile Shift+Right clicksul file in Explorer e selezionare "Copia come percorso": inserisci qui la descrizione dell'immagine

Oppure se si seleziona il nome del file e si utilizza Ctrl+Shift+C.

Questo dirà a Explorer di copiare le informazioni negli Appunti nel formato CF_TEXT, invece del solito formato CF_HDROP. Alcuni programmi non sanno cosa fare con il formato CF_HDROP, ma tutti dovrebbero capire il formato CF_TEXT.


Grazie per la tua risposta. Come accennato nella domanda, sto cercando una soluzione con CTRL + C e poi disponibile in un file batch .bat tramite riga di comando (senza alcun file di trascinamento della selezione in cmd.exe).
Basj,

vedi questo link su come incollarlo nella riga di comando: howtogeek.com/howto/25590/…
WireGuy

Grazie @WireGuy, lo uso già. Ma nel mio contesto, il batch non viene nemmeno visualizzato, quindi non dovrei vedere cmd.exe per incollarlo manualmente.
Basj,

Per capire perché ho questi strani requisiti, ecco una soluzione che utilizza Python: superuser.com/questions/260740/… per un problema ben noto (creare un collegamento simbolico con la GUI in Windows). Stavo cercando di fare lo stesso solo con un batch (no Python), ma per questo ho bisogno di essere in grado di ottenere il nome del file in un batch;) Questa è l'intera storia! Grazie comunque per il tuo aiuto!
Basj,

@Basj basta trascinare e rilasciare i file nel file batch, non è necessario visualizzare il cmd. Altrimenti come intendi incollare quei nomi di file?
phuclv,

0

Usa powershellquello presente su tutte le versioni di Windows supportate anziché sulla cmdshell legacy .
(Ciò promesso da Microsoft per essere rimosso in futuro).

Esegui powershelle usa la funzione:

Get-Clipboard

ti restituirà il contenuto degli appunti, mentre Set-Clipboardfarà il contrario - metti qualcosa negli appunti.

Se non vuoi passare a PowerShell, puoi chiamarlo su richiesta dal tuo script batch come:

 powershell -Command "& {Get-Clipboard}"

per ottenere il contenuto degli appunti nella tua sceneggiatura.


Ottengo questo in Windows 7: The term 'Get-Clipboard' is not recognized as the name of a cmdlet, function.
Basj

Get-Clipboard è un nuovo cmdlet in PowerShell 5.0 . Windows 7 include PowerShell 2.0 che è troppo vecchio per essere utile
phuclv

@Basj Come ha sottolineato phuclv, sono necessarie versioni più recenti di PowerShell e almeno .NET Framework 4.5 o versioni successive
Alex
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.