Gonduana

Contenidos para traductores

  • Blog
  • Empieza por aquí
    • Encuesta: coger
    • Encuesta: ratón o mouse
    • Artículos más leídos
    • Vídeos más vistos
    • Gonduana en las redes sociales
    • ¿Quieres saber más sobre mí?
  • Recursos
    • Software para traductores
    • Hardware para traductores
    • Internet para traductores
    • WordPress para traductores
  • Sobre mí
  • Servicios
  • Contacto

Cómo copiar los nombres de archivos con AutoHotkey

Publicado el 8/junio/2019 por Jesús Prieto

Cómo copiar los nombres de archivos con AutoHotkey

¿Verdad que muchas veces has tenido que copiar varios nombres de archivos para preparar un presupuesto, por ejemplo? Aparte de copiar cada uno y pegarlo en tu plantilla de presupuesto, aquí veremos una forma rápida y sencilla de copiar todos los nombres de los archivos seleccionados.

¿Cómo?

Pues con AutoHotkey. ¡No podía ser de otra manera!

Índice

  • Planteamiento del problema
  • Macro de AutoHotkey para copiar nombres de archivos
  • Análisis de la macro de AutoHotkey
    • 1. Solo para el Explorador de archivos
    • 2. Disparando la macro
    • 3. Llamando a una función
    • 4. El control con foco
    • 5. La herramienta Window Spy
    • 6. Copiar los nombres de archivos
    • 6. Borrando la ruta con una expresión regular
    • 7. Ordenando el Portapapeles
    • 7. Presentación en pantalla del Portapapeles
  • Conclusiones de la macro de AutoHotkey

Planteamiento del problema

Tienes abierta una carpeta del Explorador con los documentos que el cliente te pide traducir, pero necesita antes tu presupuesto, por lo que deberías darle el listado de cada documento.

La forma tradicional, y que todos hemos hecho, es copiar uno a uno los nombres de los archivos:

Forma tradicional de copiar los nombres de archivos

y pegarlo en otra aplicación (en la imagen animada anterior, el Bloc de notas).

Si son pocos archivos, puedes continuar haciéndolo de la misma forma. No hay problema…

Pero si son muchos archivos o es una tarea que se repite a menudo, esta forma sería harto ingrata. ¡Tienes que hacerlo de otra manera!

Y la hay…

Te voy a recomendar el siguiente procedimiento que pasa por copiar los nombres de archivo con la ayuda de AutoHotkey, una herramienta de la que estoy enamorado (¿lo he dicho ya alguna vez?).

De esta nueva forma, el proceso es así de rápido y sencillo:

  • seleccionar;
  • pulsar una tecla.
Copiar los nombres de archivos con AutoHotkey

Rápido, ¿verdad?

Te gustará saber que empleo esta macro cada día, sobre todo porque la encadeno con otras funciones que también pueden implementarse con AutoHotkey, como el recuento de palabras en Word.

¿Te interesa?

Pues sigue leyendo, porque, a continuación, veremos la macro de AutoHotkey necesaria.

⁂

Macro de AutoHotkey para copiar nombres de archivos

Primero te pongo la macro y luego la explicamos línea a línea, para que puedas personalizarla si así lo deseas.

; Copiar los nombres de archivos seleccionados
; https://www.gonduana.com/como-copiar-los-nombres-de-archivos-con-autohotkey
#IfWinActive ahk_exe explorer.exe
F12 up::
	CopiarNombreArchivosExplorador()
return

CopiarNombreArchivosExplorador()
{
	ControlGetFocus, miControl, A
	If (miControl = "DirectUIHWND3")
	{
		clipboard = 
		SendInput, {Control Down}c{Control Up}
		ClipWait, 0
		Clipboard := RegExReplace(Clipboard, "m)^.+\\", "")
		Sort, Clipboard
		MsgBox, 64, Nombres de archivos, %Clipboard%
	}
}
#IfWinActive

También te la puedes descargar:

Descargar macro para copiar los nombres de archivos con AutoHotkey

Si lo único que querías era la macro, ya la tienes. Pero si quieres aprender a programa, sigue leyendo, porque la analizaremos paso a paso.

⁂

Análisis de la macro de AutoHotkey

En esta ocasión, vamos a enfocar la macro de AutoHotkey desde otro punto de vista al empleado hasta ahora en Gonduana, y es usando funciones.

☛ Si quieres profundizar en las funciones, lee este artículo de Gonduana: Teoría y práctica sobre las funciones en AutoHotkey.

¿Listo?

Pues empezamos.

Como lo que sigue es algo espeso, he dividido el análisis en secciones:

1. Solo para el Explorador de archivos

Después de las 2 primeras líneas para documentar el propósito de la macro, algo que te recomiendo siempre, tienes una directiva IfWinActive:

#IfWinActive ahk_exe explorer.exe

que hace que el código se ejecute solo cuando está activado el Explorador de archivos, que es lo que queremos.

☛ Esta linea 2 no es imprescindible, pero sí útil para encapsular un determinado código y tener la seguridad de que solo se ejecutará en una determinada aplicación (el Explorador de archivos en este caso).

2. Disparando la macro

En la línea 4 puedes ver que la macro se dispara con la tecla  F12 . Ya sabes que puedes cambiarla a lo que te parezca mejor. Es más: Solo se dispara en el momento de liberar la tecla  F12 , no al pulsarla, que es el comportamiento por defecto.

3. Llamando a una función

En la línea 5 se llama a una función, CopiarNombreArchivosExplorador, que está justo debajo.

La función CopiarNombreArchivosExplorador, como todas las funciones en AutoHotkey tiene un par de paréntesis (()), seguidos por un par de llaves ({}). En este caso, dentro de los paréntesis no hay nada, pero entre las llaves va siempre el código de la función, que vamos a ver ahora:

4. El control con foco

En la línea 10 se emplea la función ControlGetFocus para conocer el nombre del control que tiene el foco en el momento de ejecutar la macro. El nombre del control se guarda en la variable miControl.

☛ Esta línea tampoco es en verdad necesaria, pero verás su utilidad en los próximos artículos de Gonduana, cuando veamos que puedes pulsar la tecla  F12  en varias zonas del Explorador de archivos para ejecutar acciones distintas.

En la línea 11 se comprueba si la variable miControl tiene el valor DirectUIHWND3. Te estarás preguntando por qué, ¿verdad?

Pues porque es el nombre del control del panel derecho del Explorador de archivos. Como podrás suponer, el panel izquierdo tiene otro nombre de control; la barra de direcciones también es otro control, así que tiene otro nombre…

¿Y cómo sé que ese es su nombre?, te preguntarás…

¡Muy buena pregunta!

Lo vemos en la siguiente sección:

5. La herramienta Window Spy

Puedes ejecutar la aplicación Window Spy si escribes Window Spy en el menú Inicio de Windows:

menú Inicio de Windows - Window Spy

O si trabajas con SciTE4AutoHotkey para editar tus macros de AutoHotkey, pulsa el siguiente botón de la barra de herramientas para ejecutar Window Spy:

Botón Window Spy en SciTE4AutoHotkey

Si ejecutas Window Spy, verás algo parecido a esto:

Window Spy - con control marcado

¿Ves arriba en la parte central ClassNN: DirectUIHWND3? Pues ahí tienes el nombre del control que está debajo del cursor del ratón, en concreto el del panel derecho..

Si vas moviendo el ratón por la ventana del Explorador de archivos, verás que el nombre del control irá cambiando en tiempo real.

☛ Te recomiendo que pases un minuto moviendo el ratón por la ventana del Explorador de archivos; verás que el nombre del control irá cambiando en tiempo real y que el del panel izquierdo coincide con el que puse arriba..

¿Aclarado el nombre del control?

Pues seguimos con la macro…

6. Copiar los nombres de archivos

En la línea 13 vaciamos el contenido de la variable Clipboard, que es una variable especial de AutoHotkey cuyo valor siempre es el contenido del Portapapeles. Es fácil entender que haciendo esta variable igual a nada, el Portapapeles de Windows se vacía.

La pregunta del millón es: «¿Para qué hemos vaciado el Portapapeles?»

Lo entenderás fácilmente en un par de líneas. Paciencia, hermano…

En la línea 14 empleamos la función SendInput para ejecutar un  CTRL+C , es decir, el copiar de toda la vida. Pero dentro del Explorador de archivos, este «copiar» tiene un significado especial. Atento ahora: No es que se copien los archivos seleccionados, como pasaría si pulsaras  CTRL+C  con el teclado, sino que se copian sus nombres.

☛ Por si te extraña: En esta línea 14 podríamos haber puesto SendInput ^c o Send ^c, simplemente, pero hemos dejado la forma recomendada en la documentación de AutoHotkey.

Podrías pensar que ya tenemos los nombres de los archivos y que podríamos dar por terminada la macro.

Pero no, mi querido lector: Aún nos falta algún punto importante.

En la línea 15 esperamos a que efectivamente el Portapapeles cambie de valor (función ClipWait). ¿Cómo saber que ha cambiado el Portapapeles? Si lo piensas bien, la única forma es vaciándolo previamente, cosa que hicimos en la línea 13. ¿Se entiende ahora?

El parámetro cero (0) de la función ClipWait indica que la macro de AutoHotkey esperará un máximo de 0,5 segundos a que cambie el Portapapeles. Tanto si ha cambiado de valor como si no, la macro continuará.

☛ Querido lector: En este punto deberías colocar algo de código para comprobar si el Portapapeles ha cambiado, porque si no ha cambiado, lo más elegante es indicar a AutoHotkey que salga de la función. Por mor de la simplicidad, he quitado este código de la macro en el artículo, pero tú deberías pensar algo al respecto, ¿de acuerdo?

Antes de seguir, paramos un momento para ver qué contiene el Portapapeles en la línea 15.

Si has seleccionado los siguientes elementos de una carpeta en tu Explorador de archivos:

Lista de archivos

el Portapapeles en la línea 15 tendrá este valor:

C:\proyecto 1\para traducir\documento 1.docx
C:\proyecto 1\para traducir\documento 2.docx
C:\proyecto 1\para traducir\documento 3.docx
C:\proyecto 1\para traducir\hoja de cálculo 1.xlsx
C:\proyecto 1\para traducir\hoja de cálculo 2.xlsx
C:\proyecto 1\para traducir\hoja de cálculo 3.xlsx
C:\proyecto 1\para traducir\presentación 1.pptx
C:\proyecto 1\para traducir\presentación 2.pptx
C:\proyecto 1\para traducir\presentación 3.pptx

6. Borrando la ruta con una expresión regular

Ahora ves que habría que procesar este contenido del Portapapeles, porque cada línea contiene no solo el nombre del archivo (lo que queremos), sino también la ruta completa (que tenemos que borrar, porque no la queremos).

La siguiente línea, la 16, emplea una función, RegExReplace, para justamente borrar la ruta que no queremos.

La función RegExReplace es algo complicada. Está muy bien explicada en la ayuda de AutoHotkey y también en este enlace. Por ello, solo voy a contar brevemente lo que hace. Esta función emplea una expresión regular, que quizás es un concepto novedoso, pero vamos a intentar comprender todo, ¿vale?

El primer argumento de la función RegExReplace es la cadena de entrada, que es Clipboard, es decir, el Portapapeles, que, recordamos, es:

C:\proyecto 1\para traducir\documento 1.docx
C:\proyecto 1\para traducir\documento 2.docx
C:\proyecto 1\para traducir\documento 3.docx
C:\proyecto 1\para traducir\hoja de cálculo 1.xlsx
C:\proyecto 1\para traducir\hoja de cálculo 2.xlsx
C:\proyecto 1\para traducir\hoja de cálculo 3.xlsx
C:\proyecto 1\para traducir\presentación 1.pptx
C:\proyecto 1\para traducir\presentación 2.pptx
C:\proyecto 1\para traducir\presentación 3.pptx

El segundo argumento de la función RegExReplace es una expresión regular:

m)^.+\

Esta expresión regular lo que hace es buscar en todas las líneas (m)) una cadena que empiece por cualquier cosa (^.+) seguida por una antibarra (\\). Como el carácter de la antibarra (\) es un carácter especial, hay que precederlo por otra antibarra en la expresión regular; por eso ves 2 antibarras seguidas. Créeme si te digo que esta expresión regular buscará una coincidencia en cada línea, desde el principio de la línea hasta la última antibarra de la misma línea.

Es decir, las coincidencias serán las siguientes, marcadas en azul:

C:\proyecto 1\para traducir\documento 1.docx
C:\proyecto 1\para traducir\documento 2.docx
C:\proyecto 1\para traducir\documento 3.docx
C:\proyecto 1\para traducir\hoja de cálculo 1.xlsx
C:\proyecto 1\para traducir\hoja de cálculo 2.xlsx
C:\proyecto 1\para traducir\hoja de cálculo 3.xlsx
C:\proyecto 1\para traducir\presentación 1.pptx
C:\proyecto 1\para traducir\presentación 2.pptx
C:\proyecto 1\para traducir\presentación 3.pptx

El tercer argumento de la función RegExReplace es la cadena de sustitución, es decir, la cadena que va a sustituir a la coincidencia encontrada. Como es una cadena vacía, el efecto que producirá la función RegExReplace es borrar desde el principio hasta la última antibarra, incluida, y esto para cada línea que haya.

Terminamos con la función RegExReplace diciendo que devuelve un valor que guardamos de nuevo en la variable Clipboard.

☛ Si te sientes perdido con las expresiones regulares, puedes consultar los artículos de expresiones regulares de este blog de Gonduana.

7. Ordenando el Portapapeles

Fíjate que ahora el Portapapeles solo contiene nombres de archivos, sin la ruta. Ya casi estamos…

Bien, pues después de sobrevivir a la parte más difícil de la macro de AutoHotkey, pasamos a la línea 19, donde la función Sort ordena alfabéticamente las líneas del Portapapeles.

El motivo de esta línea 19 del código de AutoHotkey es que, dependiendo de cómo hayas seleccionado los archivos, así será el orden de las líneas del Portapapeles. Por tanto, estimo muy útil un último esfuerzo para dar al cliente un listado en orden alfabético, que es el más habitual en el Explorador de archivos.

En el Portapapeles tendrás este contenido:

documento 1.docx
documento 2.docx
documento 3.docx
hoja de cálculo 1.xlsx
hoja de cálculo 2.xlsx
hoja de cálculo 3.xlsx
presentación 1.pptx
presentación 2.pptx
presentación 3.pptx

Que era lo que queríamos desde el principio, ¿verdad?

7. Presentación en pantalla del Portapapeles

La línea 20 solo nos sirve de confirmación de que los nombres de los archivos seleccionados están copiados en el Portapapeles.

¡Macro terminada!

☛ Si has llegado hasta aquí y entiendes la macro al completo, mi más sincera enhorabuena. Te ayudará a comprender otras macros de AutoHotkey y no dudo de que te atreverás a modificarla para tus fines.

☛ Si no has entendido algo de la macro, te recomiendo que releas el artículo y que consultes la ayuda de AutoHotkey. Si bien es posible que para este artículo necesites profundizar en las expresiones regulares, también es cierto que es algo que puedes ir haciendo poco a poco. Todo se aprende poco a poco.

⁂

Conclusiones de la macro de AutoHotkey

Con esta macro de AutoHotkey, que te puedes descargar, podrás copiar los nombres de uno o varios archivos seleccionados en el Explorador de archivos.

Solo una tecla,  F12 , y ya tienes todos los nombres de archivo, cientos si quieres, en el Portapapeles:

Copiar los nombres de archivos con AutoHotkey

Estarás de acuerdo en que la macro es muy rápida y puede facilitarte mucho tu trabajo, ¿verdad?

Te lo digo por experiencia: La macro merece la pena si necesitas preparar presupuestos y facturas con listas de documentos, por ejemplo, para traducir.

La macro merece aún más la pena si aprovechas la tecla  F12  para otras acciones dentro del Explorador de archivos, como veremos en el próximo artículo de Gonduana.

⁂

Nada más, solo un par de recomendaciones si te interesa leer más sobre AutoHotkey o si quieres estar al tanto de los artículos de Gonduana que continuarán a este:

  • Lee los otros artículos de AutoHotkey de este mismo blog. Los tienes todos si filtras por «AutoHotkey» en la nube de etiquetas (columna derecha del blog).
  • Suscríbete al boletín del blog, o sígueme en LinkedIn o Twitter (@jssprt). De esta manera, serás el primero en enterarte de la publicación de los artículos.

Entradas relacionadas

Si te ha gustado el artículo, además de compartirlo en tus redes sociales,

puedes leer otros artículos de Gonduana del mismo estilo:

Cómo escribir letras griegas con AutoHotkey

15/octubre/2020

No es algo que se prodigue todos los días, pero si alguna vez has querido escribir alguna letra griega, ¿verdad que no es fácil escribir

Leer el artículo »
Macro de AutoHotkey para pegar sin formato en Word

Macro de AutoHotkey para pegar sin formato en Word

16/julio/2020

Hoy en LinkedIn he leído un artículo de How-To Geek que recomienda usar el atajo de teclado  CTRL + MAYÚS + V  para pegar sin formato en muchas aplicaciones.

Leer el artículo »

Cómo buscar en el diccionario de la RAE con AutoHotkey

6/diciembre/2019

Si te encanta buscar las definiciones en el diccionario, pero te da pereza abrir el diccionario en internet y buscar la palabra, aquí tienes la

Leer el artículo »
Cambiar la conjunción y con AutoHotkey

Cambiar la conjunción «y» a «e» con AutoHotkey

21/octubre/2019

Este artículo es una continuación del anterior, ya que ahora vamos a ver cómo cambiar la conjunción «y» a «e» con AutoHotkey cuando es necesario

Leer el artículo »
Cambiar la conjunción o con AutoHotkey

Cambiar la conjunción «o» a «u» con AutoHotkey

8/octubre/2019

Si se te escapan frases como «siete o ocho», a pesar de que sabes que la conjunción o se cambia a u cuando le sigue

Leer el artículo »
Escribir el símbolo de marca registrada y superíndice 2

Cómo escribir el símbolo de marca registrada ®

30/septiembre/2019

Si quieres escribir el símbolo de marca registrada, es decir, ®, te presento aquí la forma de hacerlo en Word, Trados Studio y en cualquier

Leer el artículo »
Jesús Prieto

Jesús Prieto

Querido traductor: quiero compartir contigo muchas cosas que podrás aprovechar como profesional: desde herramientas especiales hasta técnicas comerciales; desde estrategias de marketing hasta trucos de productividad personal; desde cómo diseñar tu marca personal hasta novedades de impuestos.
Todos los artículos

Publicado en: macros, productividad Etiquetado como: AutoHotkey

Comentarios

  1. danijel dice

    6/marzo/2021 a las 7:13 pm

    That is cool! Thank you!

    Responder

Comentar Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Jesús Prieto

Jesús Prieto 2015

Sobre mí

Lo más visto…

Artículos más leídos de Gonduana
Vídeos más vistos de Gonduana
Gonduana en las redes sociales

Últimos artículos

  • Celda de enfoque en Excel
  • Cómo utilizar la función TRADUCIR en Excel
  • Funciones de expresiones regulares en Excel
  • Reemplazar todo en Trados Studio 2024
  • Cosas que he aprendido este año 2022
  • Cómo escribir letras griegas con AutoHotkey
  • Macro de VBA para pegar sin formato en Word
  • Macro de AutoHotkey para pegar sin formato en Word
  • Extranjerismos en el ajedrez
  • Cómo buscar en el diccionario de la RAE con AutoHotkey

Nube de etiquetas

anglicismos AutoHotkey cobros comodines copias de seguridad correo español Excel foto fórmulas geografía geometría GTD historia imagen impagos InDesign libros marca matemáticas mouse MT ortografía Outlook parábolas PDF PHP poesía power PowerPoint RAE ratón regex retrasos tarifas teclado tipografía TM Trados Studio VBA vídeo Word WordPress XML zoología

Categorías

  • adaptación (3)
  • blog (11)
  • comercial (24)
  • contabilidad (2)
  • español (6)
  • etimología (5)
  • fiscalidad (2)
  • hardware (3)
  • macros (42)
  • marketing (8)
  • noticias (4)
  • productividad (43)
  • seguridad (5)
  • social (9)
  • software (41)
  • TAO (40)
  • terminología (9)
  • traducción automática (3)
  • traducción literaria (1)
  • tradumática (40)
  • vídeo (18)
Buscar en Gonduana
Política de privacidad
Política de cookies
Aviso legal
Creative Commons

Licencia Creative Commons

Blog de Gonduana: recursos para traductores

Esta web usa cookies
Es cansino, sí, pero la ley europea me obliga a avisarte que este blog, como casi el 100%, usa cookies para recabar datos. ¿Estás de acuerdo con mi Política de cookies? Vale Rechazar Más información
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are as essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
GUARDAR Y ACEPTAR