Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: papanoel_devacaciones en 9 Octubre 2007, 01:49 am



Título: [Solucionado] Comando cmd
Publicado por: papanoel_devacaciones en 9 Octubre 2007, 01:49 am
Hola bueno aqui vengo con mi duda  :xD :xD....
estoy intentado unir dos ficheros por cmd...

Shell "cmd.exe copy /b Text1.Text + Text2.Text Text3.Text"
este es el codigo..pero cuando lo ejecuto lo unico que hace es mostrar la ventana de Command Prompt en el directorio de los archivos y no compila y une nada....Alguna idea ??
Saludos


edit:

Al final decidi buscar un poco en google de como utilizar el "GetShortPathName" y la hice con el mismo....Gracias  :) :)



Saludos


Título: Re: [Ayuda] Comando cmd
Publicado por: vivachapas en 9 Octubre 2007, 04:04 am
mmm no entiendo lo q quieres hacer ... pero xq lo haces usando la consola de comandos??
lo q quieres es compiar el texto de uno agregarselo a otro y guardarlos en un mismo archivo?


Título: Re: [Ayuda] Comando cmd
Publicado por: papanoel_devacaciones en 9 Octubre 2007, 04:28 am
No veras el comando "copy /b" se utiliza para juntar 2 archivos y despues que se ejecute solo el primero...pero por ejemplo si junto una imagen con un archivo zip..y si lo guardo como jpg lo que vere sera la imagen pero si le abro con WinRar vere el archivo zip....en el codigo:

Text1.Text - es el primer archivo
Text2.Text - es el segundo archivo
Text3.Text - es el archivo final

lo hago con la consola porque no se otro metodo  :xD :xD...la verdad es que el programa es una tonteria pero me quita el tener que escribirlo todo en la consola  :xD



Saludos


Título: Re: [Ayuda] Comando cmd
Publicado por: ~~ en 9 Octubre 2007, 11:13 am
Prueva usando la consola asi:

Código:
Shell (" cmd.exe /c...

Y eso te va a dar eror:

Código:
Shell "cmd.exe copy /b Text1.Text + Text2.Text Text3.Text"

Por q text1,2 y 3 estan tratados como cadenas de texto, no como variables por ir entre comillas...


Título: Re: [Ayuda] Comando cmd
Publicado por: tkows en 9 Octubre 2007, 12:47 pm
Deberías hacer una separación con comillas... Sería algo así:

Código:
shell ("cmd.exe /C copy /b " & Text1.Text & "+" & Text2.Text & Text3.Text),vbhide

No lo he probado, pero la idea es así, jugar con las comillas y los "&".

Salu2.


Título: Re: [Ayuda] Comando cmd
Publicado por: papanoel_devacaciones en 9 Octubre 2007, 16:22 pm
Bueno....como no conseguí que el Command Prompt dejara de mostrar unicamente la ruta...me decidi crear un archivo temporal que es ejecute y haga todo...
Código
  1. Dim canalLibre As Integer
  2. Dim strFic As String
  3. canalLibre = FreeFile
  4. Open "C:\Windows\fichero.bat" For Output As #canalLibre
  5. Print #canalLibre, "copy /b" & " " & Text1.Text & " " & "+" & " " & Text2.Text & " "; Text3.Text
  6.  
  7. Close #canalLibre
  8. strFic = "C:\Windows\fichero.bat"
  9. Shell strFic & " ", vbNormalFocus

Aqui es cuando viene mi problema.....NO ADMITE ESPACIOS  :xD :xD si intentas unir ficheros con espacios se te va...y no hace nada....alguna idea de como hacerlo ?? he intentado poner mas de " pero al final pone el Text3.Text en el fichero y no la ruta elegida.....



Saludos


Título: Re: [Ayuda] Comando cmd
Publicado por: ~~ en 9 Octubre 2007, 16:49 pm
Si pones la ruta entre comillas en comando de MS-DOS no te va a dar problemas, pero el VB para poner unas comillas si. Asi q tienes dos opciones:

La primera es poner la ruta entre comillas, para añadir unas comillas desde VB la forma mas facil es q hagas un text bos q contenga este texto " para asi poder añadir las comillas. Seria algo asi:

Código:
"copy /b  " & txtComillas.text & Text1.Text & txtComillas.text &  " + " & txtComillas.text & Text2.Text & txtComillas.text & " " & Text3.Text

La segunda opcion es obtener la ruta corta con la api GetShortPathName q es bastante mas elegante q lo anterior...

1S4ludo