Renombrar directorios bajo DOS
bud35000
Mensajes publicados
155
Estado
Miembro
-
Gordon -
Gordon -
Hola,
me gustaría renombrar toda una serie de directorios cambiando la extensión.
He creado para ello un batch.
Mi problema es que con este batch logro añadir una extensión pero no reemplazar la existente.
Aquí mi script:
el que añade la extensión que quiero tener:
rem for /F %%i in ('dir/B') DO RENAME %%i %%i.txt
pero para quitar la extensión que existía previamente, he intentado el siguiente script pero no funciona:
FOR /F %%i in ('dir/B') DO (ECHO %%i) | FOR /F "tokens=1 delims=." %%j in ('findstr "<.doc"') DO RENAME %%i %%j.txt
por otro lado, me he inspirado en un script encontrado en la red pero no veo para qué sirven "tokens" y "delims"...
¿Podríamos ayudarme?
me gustaría renombrar toda una serie de directorios cambiando la extensión.
He creado para ello un batch.
Mi problema es que con este batch logro añadir una extensión pero no reemplazar la existente.
Aquí mi script:
el que añade la extensión que quiero tener:
rem for /F %%i in ('dir/B') DO RENAME %%i %%i.txt
pero para quitar la extensión que existía previamente, he intentado el siguiente script pero no funciona:
FOR /F %%i in ('dir/B') DO (ECHO %%i) | FOR /F "tokens=1 delims=." %%j in ('findstr "<.doc"') DO RENAME %%i %%j.txt
por otro lado, me he inspirado en un script encontrado en la red pero no veo para qué sirven "tokens" y "delims"...
¿Podríamos ayudarme?
Configuración: Windows 2000 Internet Explorer 6.0
6 respuestas
-
Hola,
¿es para convertir archivos .doc a .txt?
me parece que:rename .doc .txt *.doc
debería funcionar (bueno, funciona en Linux...)
--
Tøƒ -
ah, va a hacer falta que cambie de sistema operativo. En DOS no funciona.
-
De hecho, funciona bien así con los archivos.
Pero no es exactamente lo que quiero hacer; en realidad son directorios los que me gustaría renombrar, pero es mi culpa, debería haberlo especificado. -
sí. Son carpetas que deben ser tomadas automáticamente por un FTP. Pero sólo las toman la moulinette si tienen una extensión específica. Había puesto .doc o .txt como ejemplo, pero en realidad son otras extensiones específicas de nuestros programas.
Lo extraño es que el siguiente script funciona. Pero no veo cómo quitar la extensión de origen.
Es fácil con archivos, pero con las carpetas el dos no parece reconocer el "*.*"
for /F %%i in ('dir/B') DO RENAME %%i %%i.dem
gracias de todas formas por tu ayuda. -
para directorios o archivos, la sintaxis exacta es:
c:\test> for /F %i in ('dir/B') DO RENAME %i %i.txt
hay que estar en el directorio que contiene los archivos y directorios a renombrar.
puedes cambiar la extensión txt por otra cosa, por ejemplo Gadget.
a+ -
MOVER
mueve archivos y renombra archivos y directorios.
Para mover uno o varios archivos:
MOVE | /-Y [lector:][ruta]archivo1[,...] destino
Para renombrar un directorio:
MOVE | /-Y [lector:][ruta]directorio1 directorio2
[lector:][ruta]archivo1 Especifica la ubicación y el nombre de(s)
archivo(s) que quieres mover.
destino Especifica la nueva ubicación del archivo.
La Destino puede ser una letra de unidad y
dos puntos (:), un nombre de directorio, o una
combinación. Si mueves un solo archivo,
también puedes incluir un nombre de archivo si
quieres renombrar el archivo al moverlo.
[lector:][ruta]directorio1 Especifica el directorio que quieres renombrar.
directorio2 Especifica el nuevo nombre del directorio.
/Y Elimina la solicitud de confirmación de
reemplazo de archivos de destino existentes.
/-Y Provoca la solicitud de confirmación de
reemplazo de archivos de destino existentes.
La opción /Y puede estar presente en la variable de entorno COPYCMD.
Anula esto usando /-Y en la línea de comandos. Por defecto, se muestra una
solicitud de confirmación a menos que el comando MOVE se ejecute desde
un script de comandos.