elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Duda en Batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda en Batch  (Leído 2,723 veces)
maxx93

Desconectado Desconectado

Mensajes: 99


Lo imposible es la ignorancia de lo posible


Ver Perfil
Duda en Batch
« en: 19 Julio 2010, 23:46 pm »

Hola amigos, tengo una duda, quiero que cuando el usuario escriba una ruta de una carpeta, el script me devuelva el nombre de la carpeta, no se como hacerlo con poco code. Lo unico que se me ocurre es hacer esto...
Código:
echo Ingrese ruta de la carpeta
set /p ruta=
cd "%ruta%"
cd..
set ubic=%cd%
cd\
set carpeta=%temp%\%random%%random%%random%
md "%carpeta%"
move "%ruta%" "%carpeta%"
set nom=%random%%random%%random%
dir "%carpeta%" /b>"%temp%\%nom%.txt"
for /f "delims=" %%i in ("%temp%\%nom%.txt") do (set carpet=%%i)
echo Nombre de la carpeta: %carpet%
move "%carpeta%\%carpet%" "%ubic%"
rd "%carpeta%"
del "%temp%\%nom%.txt"
pause>nul

Pero me parece mucho codigo para lo que necesito... ademas si adentro de la carpeta hay algun archivo en uso, es script se volveria inutil. Algun consejo de como se puede hacer esto con poco code?
Desde ya, gracias por leer.


En línea

Fluflu

Desconectado Desconectado

Mensajes: 137



Ver Perfil
Re: Duda en Batch
« Respuesta #1 en: 20 Julio 2010, 01:55 am »

Si he entendido bien (corrígeme si no es así) no veo de mucha utilidad que te muestre el nombre de la carpeta porque para escribir la ruta debes conocer ese nombre.

Ejemplo:

C:/Users/Usuario/Documents/Articulos

¿No?


En línea

La puerta más segura es la que no necesita ser cerrada...
maxx93

Desconectado Desconectado

Mensajes: 99


Lo imposible es la ignorancia de lo posible


Ver Perfil
Re: Duda en Batch
« Respuesta #2 en: 20 Julio 2010, 02:02 am »

Sisi, pero estoy armando un script para ocultar archivos y carpeta en donde codifica los nombres de los archivos y carpetas para no ser encontrado igual tiene otros metodos de seguridad, entonces cuando el usuario arrastra el archivo o carpeta al programa y le da enter se oculta pero para que no sea mas complicado pensaba en que detecte la carpeta. Sino el usuario la va a tener que volver a escribir. Lo de identificar el archivo ya lo puede hacer con un dir pero para la carpeta no se me ocurre nada corto. Alguna forma de poder hacerlo mas corto?
« Última modificación: 20 Julio 2010, 02:05 am por maxx93 » En línea

BlacKGilgamesH

Desconectado Desconectado

Mensajes: 28


¿¿Por qué la gente aprecia más un post estupido??


Ver Perfil WWW
Re: Duda en Batch
« Respuesta #3 en: 20 Julio 2010, 05:24 am »

Puedes hacerlo asi:

Código:
@echo off
echo.Ingrese ruta de carpeta:
set /p car=
call:nom %car%
clear
echo.El nombre es %nom%
pause>nul
exit
:nom
set nom=%~n1
goto:eof

Saludos
En línea

maxx93

Desconectado Desconectado

Mensajes: 99


Lo imposible es la ignorancia de lo posible


Ver Perfil
Re: Duda en Batch
« Respuesta #4 en: 20 Julio 2010, 05:45 am »

Buen code BlacKGilgamesH  ;). Muchas Gracias. Pero hay un pequeño problema cuando la carpeta tiene de nombre "x .y" solo toma "x" no toma "x .y", el code esta bien salvo por el clear, me parece que es un bug del command  :-\ . Alguna otra alternativa?
« Última modificación: 20 Julio 2010, 06:03 am por maxx93 » En línea

BlacKGilgamesH

Desconectado Desconectado

Mensajes: 28


¿¿Por qué la gente aprecia más un post estupido??


Ver Perfil WWW
Re: Duda en Batch
« Respuesta #5 en: 20 Julio 2010, 21:21 pm »

XD, disculpa el clear, es que me confundi con bash  :silbar: XD, solo es cuestion de cambiarlo por  un cls XD.

Y lo de el "x .y" solo entrecomilla la variable %car% cuando llamas a la etiqueta nom, sea la linea:

Código:
call:nom %car%

quedaria:

Código:
call:nom "%car%"

y eso deberia de solucionarlo.

Saludos
En línea

maxx93

Desconectado Desconectado

Mensajes: 99


Lo imposible es la ignorancia de lo posible


Ver Perfil
Re: Duda en Batch
« Respuesta #6 en: 21 Julio 2010, 02:26 am »

Empeoro  :laugh:, en vez de devolver el nombre de la carpeta devuelve "Documents" de "Documents and Settings". Salu2
« Última modificación: 21 Julio 2010, 02:44 am por maxx93 » En línea

BlacKGilgamesH

Desconectado Desconectado

Mensajes: 28


¿¿Por qué la gente aprecia más un post estupido??


Ver Perfil WWW
Re: Duda en Batch
« Respuesta #7 en: 21 Julio 2010, 02:46 am »

¿como quedo tu code?
En línea

maxx93

Desconectado Desconectado

Mensajes: 99


Lo imposible es la ignorancia de lo posible


Ver Perfil
Re: Duda en Batch
« Respuesta #8 en: 21 Julio 2010, 03:07 am »

que code el de para devolver el nombre de la carpeta?
Código:
echo Ingrese ruta de carpeta:
set /p car=
call:nom "%car%"
echo.
echo El nombre es %not%
pause>nul
exit
:nom
set not=%~n1
goto:eof
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines