Ms-Dos - Creando Batch desde Vb.Net!!

 
Vista:

Creando Batch desde Vb.Net!!

Publicado por Eukeny (7 intervenciones) el 17/11/2009 21:26:54
Hola, he creado un batch desde Visual Basic.Net, para respaldar unos directorios, sin embargo vengo aqui a solicitar su ayuda porque no hace lo que necesito. Puse este tema aqui porque manejo batch, aunque realmente estoy creando un fichero bat desde visual basic.net 2005 y no supe donde postearlo...

Trate de hacerlo lo mas sencillo posible, espero no sea muy enredado..

El Batch se crea sin problemas
Me crea los directorios destino,
pero no copia los archivos y carpetas fuente,
puede tener algun error??Ojala y me puedan ayudar?..

*************** anexo el codigo a continuacion..

Option Explicit On
Imports System.IO

Public Class Form1

' INDICO C:\ POR DEFAULT
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = "C:\"
TextBox1.SelectAll()
TextBox1.Focus()
End Sub

'UTILIZO UN FOLDER BROWSE DIALOG PARA ESTABLECER UNA RUTA Y LA AGREGO A UN
' TEXTBOX
Private Sub btnExaminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExaminar.Click
Dim folder As New FolderBrowserDialog

If folder.ShowDialog = Windows.Forms.DialogResult.OK Then
TextBox1.Text = folder.SelectedPath
End If
End Sub

' AQUI ESTOY CREANDO EL FICHERO BATCH DE NOMBRE Prueba.bat EN LA RUTA
' QUE SE ESTABLECE EN TEXTBOX1

' TUVE QUE UTILIZAR LOS CODIGOS PARA TAB =>chr(9) PARA ALINEAR EL TEXTO DEL BAT
' chr(34) PARA AGREGARLE LAS COMILLAS A LAS RUTAS, YA QUE VB.NET NO PERMITE
' INTRODUCIR COMILLAS DENTRO DE COMILLAS

' COMO POR EJEMPLO:

' EN Textbox1.text = " "Hola" ".. ESTO EN VB.NET ES INCORRECTO
' LO CORRECTO ES CONCATENAR: Textbox1.text = chr(34) + "Hola" + chr(34)

Private Sub btnCrear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCrear.Click

Dim oSW As New StreamWriter(TextBox1.Text & "Prueba.bat")
Dim Linea As String = "mdow @ /HID" & vbNewLine & _
"@ECHO OFF" & vbNewLine & _
"@ECHO *** RESPALDANDO ***" & vbNewLine & vbNewLine & _
"SET FOLDER=%date:~0,2%-%date:~3,2%-%date:~6,4%" & vbNewLine & _
"SET BACKUPCMD = XCOPY / S / C / D / E / H / I / R / Y " & vbNewLine & _
"SET i=0" & vbNewLine & _
": suma" & vbNewLine & vbNewLine & _
"set /a i=i+1" & vbNewLine & vbNewLine & _
"IF EXIST " + Chr(34) + "C:\RespSist_" + Chr(34) + "%FOLDER%-%i%. goto suma" & vbNewLine & vbNewLine & _
Chr(9) + "MKDIR " + Chr(34) + "C:\RespSist_" + Chr(34) + "%FOLDER%-%i%" & vbNewLine & _
Chr(9) + "MKDIR " + Chr(34) + "C:\RespSist_%FOLDER%-%i%\Mis Documentos" + Chr(34) & vbNewLine & _
Chr(9) + "MKDIR " + Chr(34) + "C:\RespSist_%FOLDER%-%i%\Escritorio" + Chr(34) & vbNewLine & _
Chr(9) + "%BACKUPCMD% " + Chr(34) + "C:\Documents and settings\kenny\Mis Documentos" + Chr(34) + ". " + Chr(34) + "C:\RespSist_%FOLDER%-%i%\Mis Documentos" + Chr(34) & vbNewLine & _
Chr(9) + "%BACKUPCMD% " + Chr(34) + "C:\Documents and settings\kenny\Escritorio" + Chr(34) + ". " + Chr(34) + "C:\RespSist_%FOLDER%-%i%\Escritorio" + Chr(34) & vbNewLine & vbNewLine & _
"FOR /F " + Chr(34) + "skip=2" + Chr(34) + " %%i IN ('DIR C:\Res* /O-D /B') DO RD /S /Q C:\%%i" & vbNewLine & vbNewLine & _
": salir"
oSW.WriteLine(Linea)
oSW.Flush()
End Sub

' ABRO EL EXPLORADOR DE WINDOWS PARA CORROBORAR QUE SE HAYA CREADO EL
' FICHERO

Private Sub btnIrA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIrA.Click
Shell("explorer.exe " & TextBox1.Text, vbNormalFocus)
End Sub
End Class
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Re:Encontre la solucion.. jej

Publicado por Eukeny (7 intervenciones) el 17/11/2009 23:04:25
Jejej.. que loco que estoy.. segui empujando y empujando, hasta que encontre la solucion.. La comparto pr si alguien tiene el mismo problema...

en la linea final del siguiente bloque hay que poner los comodines inmediatamente despues de la diagonal......

"@ECHO *** RESPALDANDO ***" & vbNewLine & vbNewLine & _
"SET FOLDER=%date:~0,2%-%date:~3,2%-%date:~6,4%" & vbNewLine & _
"SET BACKUPCMD = XCOPY / S / C / D / E / H / I / R / Y " & vbNewLine & _

De este modo:

"SET BACKUPCMD = XCOPY /S /C /D /E /H /I /R /Y " & vbNewLine & _

Jejej.. Al parecer eso era todo, no me di cuenta puesto que al parecer la consola de MS-DOS no sirve como compilador..

Salu2... despues los molesto nuevamente..
Muchas gracias por su genial espacio, he aprendido bastante de ustedes..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar