[Batch] Cambiar nombre a directorios..

Iniciado por Kobra5, 9 Febrero 2009, 19:20 PM

0 Miembros y 1 Visitante están viendo este tema.

Kobra5

 :D

Hola comundidad...

Pos ando un poco despistado en el sentido de que se me ocurrio hacer un scrip en batch, solo queria probar haber si funcionaba pero todo iva bien,,
se trata mas omenos así:

lo que hacia era que te creaba una carpeta en C:\MyCarperta\
en el cual dentro de Mycarpeta poder crear mas carpetas,
C:\MyCarperta\NuevaCarperta
he llegado hasta eliminarlas, y lo mejor es como renombrar a NuevaCarpeta....
He probado con RENAME, REN, pero no estroy muy seguro ya que dice que es para cambiar nombre a archivos. y por el error que me sale de sintaxis no valida..
Hasta ahora no he podido :-( :rolleyes:,
Y sabiendo qeu ustedes me ayudaran, ya que en otras ocasiones han aclarado mis dudas,,
de antemano Muchas gracias.
saludos ::)
Kobra5


leogtz

La sintaxis del rename sobre carpetas es la misma :
ren "Carpeta"  "Carpetarenombrada"

Las comillas dobles son necesarias para carpetas o archivos con espacios.

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Kobra5

#2
Cita de: Leo Gutierrez. en  9 Febrero 2009, 19:44 PM
La sintaxis del rename sobre carpetas es la misma :
ren "Carpeta"  "Carpetarenombrada"

Las comillas dobles son necesarias para carpetas o archivos con espacios.


Gracias, men
Voy a probarlo....


mmmm, no se si no lo no deje como era por que no me funciono
manda un error: El sistema ni puede hallar la ruta especificada

Saludos
Kobra5


Kobra5

el code va asi

@echo off
cls
:menu
cls
echo.
echo  1 Crear My Folder.
echo  2 Crear New Folder en My Folder
echo  3 Renombrar
echo  4 Eliminar
echo  5 Salir
echo.
set /p op=">>"
if [%op%]==[] (msg * Error. & goto menu)
if %op%== 1 goto myfldr
if %op%== 2 goto sbfldr
if %op%== 3 goto renombrar
if %op%== 4 goto dlnwflsr
if %op%== 5 goto exit
if %op% GTR 5 echo error
goto menu

:myfldr
cls
echo.
echo creando folder...
echo.
MD "C:\My Folder\"
echo.
echo Listo.
echo.
Pause>nul
goto menu

:sbfldr
cls
echo.
echo Crear subcarpeta...
echo.
MD "C:\My Folder\New Folder"
echo.
echo Listo.
echo.
Pause>nul
goto menu

:dlnwflsr
cls
echo.
echo eliminar folder...
echo.
RD "C:\My Folder\New Folder"
echo Listo.
echo.
Pause>nul
goto menu

:renombrar
cls
echo.
echo renombrar subcarpeta...
echo.
set /p ac=Nombre actual:
set /p nw=Nuevo nombre:
echo.
REN "C:\My Folder\%ac%" "C:\My Folder\%nw%"
echo Listo.
echo.
Pause>nul
goto menu


la verdad no le encuentro hasta ahora...

saludos
Kobra5


Banti

Cita de: Kobra5 en 10 Febrero 2009, 00:33 AM
el code va asi

@echo off
cls
:menu
cls
echo.
echo  1 Crear My Folder.
echo  2 Crear New Folder en My Folder
echo  3 Renombrar
echo  4 Eliminar
echo  5 Salir
echo.
set /p op=">>"
if [%op%]==[] (msg * Error. & goto menu)
if %op%== 1 goto myfldr
if %op%== 2 goto sbfldr
if %op%== 3 goto renombrar
if %op%== 4 goto dlnwflsr
if %op%== 5 goto exit
if %op% GTR 5 echo error
goto menu

:myfldr
cls
echo.
echo creando folder...
echo.
MD "C:\My Folder\"
echo.
echo Listo.
echo.
Pause>nul
goto menu

:sbfldr
cls
echo.
echo Crear subcarpeta...
echo.
MD "C:\My Folder\New Folder"
echo.
echo Listo.
echo.
Pause>nul
goto menu

:dlnwflsr
cls
echo.
echo eliminar folder...
echo.
RD "C:\My Folder\New Folder"
echo Listo.
echo.
Pause>nul
goto menu

:renombrar
cls
echo.
echo renombrar subcarpeta...
echo.
set /p ac=Nombre actual:
set /p nw=Nuevo nombre:
echo.
REN "C:\My Folder\%ac%" "C:\My Folder\%nw%"
echo Listo.
echo.
Pause>nul
goto menu


la verdad no le encuentro hasta ahora...

saludos
Kobra5

Comencemos, el codigo tens que poner dentro de [code][/code] como hace RockoX.
La opcion salir esta mal echa, ya que en vez de ejecutar el comando "exit", esta llamando a la funcion "exit".
La ultima condicion (if) esta mal desarollada y su accion no se la ve. Ya que el mensaje "error" nunca se lo ve, y el otro problema es que la condicion es muy obvia ya que si variable no es igual a 1,2,3,4,5 es superior a 5 obviamente (en caso de que el numero no sea negativo). Lo que se podria hacer es eliminar esa linea "if %op% GTR 5 echo error" y reemplazar por "goto:error" que es una funcion con un mensaje error.
El otro problema es que en todas las funciones se repite un proceso.
Que es:
echo Listo.
echo.
Pause>nul
goto menu


Lo que se podria hacer es una funcion por ejmplo llamada final y poner este contenido y luego cuando termina las funciones de las opciones que haga un "call:final".

Mmm.... espero que se entienda mis ambiguedades.

Kobra5

Gracias vaati, tomare encuenta todo esto tienes mucha razon,
y de lo otro ya pude
con un simple CD
lo solucione:

echo.
CD "C:\My Folder"
echo.
REN "%ac%" "%nw%"

Eso era todo, Gracias
Y Saludos

Kobra5