Si es que soy muy cabezota, Y no hay nada mejor que hacerlo uno mismo.
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/?9a051l1wyd9jyotMover.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..."
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:
# -*- 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