with script multiple mass files batch file batch-file find rename delete-file

script - rename files bulk windows



Lote: encuentre el archivo y renómbrelo/encuentre el archivo y elimínelo (2)

Entonces ... sí, soy bastante novato. Todavía estoy tratando de explicar lo mejor posible. Pero necesita ayuda con algo como encontrar el archivo exacto de C: unidad (con lote) y cambiarle el nombre. También quería saber cómo encontrar el archivo de C: y eliminarlo. (2 problemas en 1 hilo ...)

Problema 1. ejemplo: quiero encontrar un archivo llamado "text1.txt" de C: unidad con lote, si se encuentra con éxito, renómbrelo como "text2.txt".

Ejemplo de problema 2.: Quiero encontrar el archivo llamado "image1.jpg" de C: unidad con lote, si se encuentra con éxito, elimínelo.

¿O cómo podría hacerse esto con un lote? del image1 solo verifica la misma carpeta donde ya está, lo mismo con rename. ¿Cómo encontrar estos archivos con un lote de todo C: disco? Solo ejemplo. 2 pequeñas cosas para resolver, cambiar el nombre y eliminar buscando los archivos exactos con el lote. ¿Qué hay de borrar el archivo de la subcarpeta con el lote? Pero lo siento, mi bajo conocimiento técnico, debe comenzar estas cosas desde algún lado.


¡Oh, es genial tener algunos programadores buenos! La mayoría de los programadores que conozco son feos .

for /f "delims=" %%i in (''dir /s /b /a-d "text.txt"'') do (ren "%%i" text2.txt)

Debería hacer la tarea de cambiar el nombre. Sin embargo, debe anteponer la unidad y el directorio de inicio al nombre del archivo, o cambiará el nombre de TODOS los archivos text.txt en TODOS los subdirectorios. Por lo tanto ...dir /s/b "c:/users/kaster/text.txt"... procesará "c:/users/kaster/" y todos los directorios a continuación y "c:/users/kaster/" el nombre de TODOS los archivos llamados text.txt al nuevo nombre.

Funciona realizando un escaneo DIR en /b modo básico (es decir, solo nombres de archivos) /s incluyendo subdirectorios /ad ignorando los nombres de directorio correspondientes para archivos llamados "text.txt" - y el nombre de archivo completo se asigna a %%i . La cláusula delims se asegura de que los espacios no se interpreten como delimitadores.

Ver

`FOR ?`

de la solicitud de documentación.

Y si está ejecutando esto directamente desde el aviso, cambie cada %% a %

El segundo comando es sustancialmente fácil

del /s "image1.jpg"

De nuevo, antependa la ruta de inicio, y sea MUY, MUY cuidadoso. Esto eliminará TODOS los nombres de archivo que coincidan con "image1.jpg" en y debajo del directorio especificado.

En todo momento, al citar los nombres de los archivos se garantiza que los spaces en los nombres de archivos o directorios se procesen correctamente.


Prueba esto. Si la salida es correcta, elimine el comando echo de la línea.

for /f "delims=" %%i in (''dir /s /b /a-d /file1.txt /image1.jpg'') do if "%%~nxi"=="file1.txt" (echo ren "%%~i" "text2.txt") else if "%%~nxi"=="image1.jpg" echo del "%%~i"