Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#11481
Cita de: WaAYa HaCK en 26 Febrero 2012, 15:29 PM
quiero un acceso directo en el pendrive que apunte a un programa del pendrive, pero sin depender de la unidad que le asigne el ordenador.

Pero... ¿Eso lo quieres en el autorun.inf? no se, es que en el título pones archivo.ini? xD

Osea, si lo que quieres es un archivo.lnk que ejecute un programa determinado del pendrive, sin saber la letra de la unidad, Te lo puedo hacer en bat, Confirmamelo

EDITO: Importante, para XP o para 7?
#11482
Scripting / Re: Ayuda con archivo bat
26 Febrero 2012, 09:42 AM
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.




Buenas.

1º: Exe script.
descarga_directa_software


2º:
Código (dos) [Seleccionar]
@echo off
For /F "Tokens=*" %%# in ('Dir /B /S "NOMBRE DEL EJECUTABLE.EXE"') Do (Call :proceso "%%#")

:Proceso
Echo Ruta: %~dp1
Echo Archivo: %~nx1
echo Completo: %1
Pause


Saludos
#11483

Cita de: YO
http://www.scriptcode.com/vbscripteditor/

Solo tienes que instalarte la versión Trial, y aqui verás los scripts:

C:\Program Files\ExeScript Editor\ScriptCenter

Salu2
#11484
De verdad que muxisimas gracias Ryo

Al final he conseguido hacer esto, Aunque el def message_box es un "copy & paste" el resto lo he ido haciendo yo, Por eso lo posteo por si he tenido algún fallo al hacerlo o si sale alguna mejora.

En principio si el script se usa desde el menú sendto, debería guardarse como un ".rbw" pero entonces ya no saldría el menú de ayuda o los posibles mensajes de errores... No se como puedo hacer para que "reaparezca" la consola solamente para mostrar la ayuda.

un saludo.




Código (ruby) [Seleccionar]
# -*- coding: UTF-8 -*-

# By EleKtro H@cker (24/02/2012)
#
# Mueve archivos desde un punto de origen hasta un punto de destino
# Pensado para usarlo como replazamiento del "SendTo" de Windows.
#
# (Requiere el uso de argumentos)


# Módulos

require "FileUtils"
require 'dl'

exit if Object.const_defined?(:Ocra)


# Variables vonstantes

BUTTONS_OKCANCEL = 1
BUTTONS_YESNO = 4
CLICKED_CANCEL = 2
CLICKED_YES = 6
CLICKED_NO = 7


# Métodos

def help()
print "\nSe requiere al menos 1 archivo de origen.\n\n\n"
print "Modo de empleo: \n\n"
print ' Mover.rb [Destino] [Archivo de origen 1] [Archivo de origen 2] [etc...]' + "\n\n\n"
print 'Ejemplo: (Mover tres archivos al directorio de destino "C:"' + "\n\n"
print ' Mover.rb "C:\" "D:\Archivo1.txt" "E:\Archivo2.jpg" "F:\Archivo3.mp3"' + "\n\n"
Process.exit
end

def message_box(txt, title='', buttons='')
    user32 = DL.dlopen('user32')
msgbox = DL::CFunc.new(user32['MessageBoxA'], DL::TYPE_LONG, 'MessageBox')
r, rs = msgbox.call([0, txt, title, 3].pack('L!ppL!').unpack('L!*'))
    return r
end


# Control de errores

if ARGV.empty? == true
help()
elsif ARGV.length < 2
help()
elsif File.directory?(ARGV[0]) == false
print "\n El directorio de destino no existe: " + (ARGV[0]) + "\n"
Process.exit
end

for archivo in ARGV[1..ARGV.length].each
if File.exist?(archivo) == false
print "\n El archivo a mover no existe: " + archivo + "\n"
end

end



# Proceso

for archivo in ARGV[1..ARGV.length].each

if File.exist?(ARGV[0] + "\\" + archivo.split('\\').last)
response = message_box("Origen:\n" + archivo + "\n\n Destino:\n " + ARGV[0] + "\\" + archivo.split('\\').last + "\n\n El archivo de destino ya existe, Reemplazar archivo?", "Reemplazar archivo?", BUTTONS_YESNO)
if response == CLICKED_YES
  FileUtils.move archivo, ARGV[0]
  elsif response == CLICKED_CANCEL
  Process.exit
end
else
FileUtils.move archivo, ARGV[0]
end

end


# Fin

Process.exit
#11485
Si es que soy muy cabezota, Y no hay nada mejor que hacerlo uno mismo.  :silbar:

Al final he echo una mini aplicación en Ruby para esta taréa

Aqui la comparto con vosotros por si fuese de utilidad: www.mediafire.com/?9a051l1wyd9jyot


Mover.exe Se puede usar de 2 formas:

1ª - Desde la consola:

Modo de empleo:
Mover.exe [Destino] [Archivo de origen 1] [Archivo de origen 2] [etc...]

Ejemplo: (Mover tres archivos al directorio de destino "C:"
Mover.exe "C:\" "D:\Archivo1.txt" "E:\Archivo2.jpg" "F:\Archivo3.mp3"


2º - Desde el menú "Enviar a..."  ;D
     
     Instrucciones:

    1- Guardamos el archivo "Mover.exe" donde queramos, Por ejemplo en "C:\Windows"    (No poner el ejecutable en System32, no funciona el compilado)
    2- Creamos nuestro archivo ".lnk" de enlace directo hacia una carpeta en Windows, Como lo hariamos normalmente
    2- Abrimos las propiedades del archivo ".lnk" y agregamos la ruta de "mover.exe" al destino del lnk.
        Por ejemplo, Si el destino es este: "E:\-=Temporal=-\Documentos\DVD"
        Debería quedar así: "C:\Windows\Mover.exe" "E:\-=Temporal=-\Documentos\DVD"
    4- Agregamos el archivo ".lnk" al menú "sendto" como lo hariamos normalmente.   (C:\Users\Administrador\AppData\Roaming\Microsoft\Windows\SendTo)

Sencillo, ¿Verdad?

Además le agregué un control de errores y lo hice de tal foema que los archivos no se reemplazen por equivocación.



Salu2!





El code:

Código (ruby) [Seleccionar]
# -*- coding: UTF-8 -*-

# By EleKtro H@cker (24/02/2012)
#
# Mueve archivos desde un punto de origen hasta un punto de destino
# Pensado para usarlo como replazamiento del "SendTo" de Windows.
#
# (Requiere el uso de argumentos)


# Módulos

require "FileUtils"
require 'dl'

exit if Object.const_defined?(:Ocra)


# Variables vonstantes

BUTTONS_OKCANCEL = 1
BUTTONS_YESNO = 4
CLICKED_CANCEL = 2
CLICKED_YES = 6
CLICKED_NO = 7


# Métodos

def help()
print "\nSe requiere al menos 1 archivo de origen.\n\n\n"
print "Modo de empleo: \n\n"
print ' Mover.rb [Destino] [Archivo de origen 1] [Archivo de origen 2] [etc...]' + "\n\n\n"
print 'Ejemplo: (Mover tres archivos al directorio de destino "C:"' + "\n\n"
print ' Mover.rb "C:\" "D:\Archivo1.txt" "E:\Archivo2.jpg" "F:\Archivo3.mp3"' + "\n\n"
Process.exit
end

def message_box(txt, title='', buttons='')
   user32 = DL.dlopen('user32')
msgbox = DL::CFunc.new(user32['MessageBoxA'], DL::TYPE_LONG, 'MessageBox')
r, rs = msgbox.call([0, txt, title, 3].pack('L!ppL!').unpack('L!*'))
   return r
end


# Control de errores

if ARGV.empty? == true
help()
elsif ARGV.length < 2
help()
elsif File.directory?(ARGV[0]) == false
print "\n El directorio de destino no existe: " + (ARGV[0]) + "\n"
Process.exit
end

for archivo in ARGV[1..ARGV.length].each
if File.exist?(archivo) == false
print "\n El archivo a mover no existe: " + archivo + "\n"
end

end



# Proceso

for archivo in ARGV[1..ARGV.length].each

if File.exist?(ARGV[0] + "\\" + archivo.split('\\').last)
response = message_box("Origen:\n" + archivo + "\n\n Destino:\n " + ARGV[0] + "\\" + archivo.split('\\').last + "\n\n El archivo de destino ya existe, Reemplazar archivo?", "Reemplazar archivo?", BUTTONS_YESNO)
if response == CLICKED_YES
  FileUtils.move archivo, ARGV[0]
  elsif response == CLICKED_CANCEL
  Process.exit
end
else
FileUtils.move archivo, ARGV[0]
end

end


# Fin

Process.exit
#11486
Solucionado

El PE Explorer me ha servido :)

Un saludo
#11487
Cita de: RyogiShiki en 24 Febrero 2012, 00:02 AM
usando el operador de rango dentro del indice del array:

Me salvaste de nuevo gracias ^^
#11488
Cita de: DonVidela en 24 Febrero 2012, 00:23 AM
Hola pense que era el puro codigo batch XDDDDDDDddd ahora baje la aplicacion pero me saltó el avira  :xD a que se debe?
falso positivo?

me salto un tal trojan dropper

No me extraña, Uso aplicaciones que en avira seguro saltan a la primera, pero ninguna tiene bicho

Puedes abrir el exe con winraar y mirar lo que hay dentro, Solo son aplicaciones de Nirsoft, y Securityexploded, Si te sientes más seguro puedes descargarlas desde la web d nirrsoft y securityexploded y reemplazar los archivos (Aunque el avira seguirá alertando) xD.

Aparte de lo del falso positivo de Avira, ahora si te funciona?

salu2
#11489
Hola, estoy intentando hacer un code:

Código (ruby) [Seleccionar]
require "FileUtils"

for archivo in ARGV
    FileUtils.move archivo, ARGV[0]
end

Process.exit


El problema es que necesito que el for trabaje los argumentos a partir del argumento nº 1, Hasta llegar al último argumento (Número desconocido que capturo con ARGV.length)

Osea, Que no tome en cuenta el argumento nº 0



He intentado hacerlo con el operador de rango, y algunos ejemplos más pero no lo consigo...

Código (ruby) [Seleccionar]
ARGV[1]..ARGV[(ARGV.length)].each { |archivo| FileUtils.move archivo, ARGV[0] }

Código (ruby) [Seleccionar]
ARGV[1].upto ARGV[(ARGV.length)] { |archivo| FileUtils.move archivo, ARGV[0] }

Código (ruby) [Seleccionar]
for archivo in ARGV[1], ARGV[(ARGV.length)]
   FileUtils.move archivo, ARGV[0]
end

#11490
borrar_archivos_y_mostrar_peso_de_archivos_borrado

conseguir_informacion_de_un_acceso_directo_lnk

solucionado_vbs_como_hacer_este_bucle


el otro script que tengo es el típico para ejecutar archivos ocultos.

Creo que no tengo más cosas buenas en vbs

un saludo