Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Dyehuty en 3 Febrero 2009, 22:52 pm



Título: tomar letra de unidad en batch
Publicado por: Dyehuty en 3 Febrero 2009, 22:52 pm
Hola, me podriais aclarar una duda de novato respecto a este lenguaje?

Estoy intentando hacer un programa para recopilar datos automaticamente de un pc con solo meter el pendrive/mp3/lo que sea.

La idea es muy basica, simplemente que el autorun inicie un batch, y este ejecute unas ordenes pasando el resultado a un archivo de texto que creara en el dispositivo extraible (vamos, nada nuevo).

El problema viene a la hora de escribir la ruta en la que crear el archivo, porque no puedo saber de antemano la letra de unidad que le sera asignada al dispositivo. Podia hacer que se crease el archivo dentro del pc y copiarlo luego manualmente, pero entonces se me va al garete el sigilo  :xD

Existe alguna forma de saber qué letra se le ha asignado, y cambiar la ruta de archivo dinamicamente en funcion de esto?

Siento si la pregunta ha sido posteada, pero no la he visto por aqui (estoy recien registrado pero llevo bastante leyendo el foro)


Título: Re: tomar letra de unidad en batch
Publicado por: Darioxhcx en 4 Febrero 2009, 00:46 am
Código:
echo informacion de red (?ipconfig>%homedrive%\x.txt
echo nombre de usuario %username%>>%homedrive%\x.txt
echoi hora %time% dia %date%>>%homedrive%\x.txt
echo red local (?>>%homedrive%\x.txt
echo net view>>%homedrive%\x.txt
copy /y %homedrive%\x.txt E:\
algo asi me parece q pedis no ?
saludos


Título: Re: tomar letra de unidad en batch
Publicado por: GroK en 4 Febrero 2009, 01:19 am
Código:
copy /y %homedrive%\x.txt E:\

Y como sabe que el pendrive esta en E: y no en cualquier otra letra de unidad?

Lo que (creo) que te hace falta es %~d0:

Código
  1. @echo off
  2. echo %~d0

Eso imprimira por pantalla la letra de la unidad donde se aloja el script. Tambien puedes sacar la ruta completa poniendo %~dp0 (fijate que la 'd' corresponde a "drive", la 'p' a "path", y '0' se refiere al propio archivo), e incluso hay mas posibilidades.

Esta bien explicado aqui (http://blogs.msdn.com/oldnewthing/archive/2005/01/28/362565.aspx) (mira los comentarios)

Saludos


Título: Re: tomar letra de unidad en batch
Publicado por: Darioxhcx en 4 Febrero 2009, 01:23 am
asi es
acostumbrado por que en mi pc es E:\
gracias x completarlo xD


Título: Re: tomar letra de unidad en batch
Publicado por: Dyehuty en 4 Febrero 2009, 17:53 pm
Exacto, eso es lo que necesitaba.

Muchas gracias ;)