archivos .bat

Iniciado por gogos, 28 Julio 2006, 23:59 PM

0 Miembros y 1 Visitante están viendo este tema.

gogos

holas

les escribo para que me saquen de una  duda urgente. necesito crear un archivo .bat con un directorio y subdirectorios en el;
y poder verlo desde la consola del sistema de msdos.

le agradezco al que me ayude con este tema lo mas antes posible.


JuanK_Solocodigo

Juan Carlos Ruiz
Ingeniero de Sistemas
Mi Blog Técnico

MaLkAvIaN_NeT

Para poder escribir un archivo necesitas usar el namespace:
Imports System.IO
(IO=Imput output)

'necesitas usar StreamWrite para escribir el bat
private sr As StreamWriter
private FILE_NAME As String para guardar el nombre del archivo
Dim driveactual As String = Application.StartupPath.Substring(0, 3)'esto nos dará algo así C:\


'No se para que quieres ver los resultados en el command entonces para que posteas en .NET  :o :-\ ;) ,, mejor pongamoslo en un treeview
'en un combo cargas las unidades para que te movilces entre c,d,e, etc.

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Me.TreeView1.Nodes.Clear()
        'LISTAMOS DIRECTORIOS
        Dim Ruta As String = Me.ComboBox1.Text.ToString
        For Each file As String In Directory.GetDirectories(Ruta)
            Dim nodo As New TreeNode
            nodo.Text = file
            Try
                For Each direct As String In Directory.GetDirectories(nodo.Text)
                    Dim nodoHijo As New TreeNode
                    nodoHijo.Text = direct
                    nodo.Nodes.Add(nodoHijo)
                Next
            Catch ex As Exception
            End Try
            Me.TreeView1.Nodes.Add(nodo)
        Next
    End Sub


'este sub nos va a permitir crear un archivo bat
   Private Sub creaBat()
        'UBICAMOS LA RUTA DONDE GUARDAREMOS NUESTRO ARCHIVO
        Dim subRuta As String = Application.StartupPath.Substring(3)
        Dim directorio As String
        For i As Integer = 0 To subRuta.Length - 1
            If subRuta.Substring(i, 1).ToLower = "\" Then
                Exit For
            Else
                directorio += subRuta.Substring(i, 1)
            End If
        Next

        'CREAMOS EL ARCHIVO, el nombre será la fecha
        Dim FECHA As Date
        FILE_NAME = Me.driveactual & directorio & "\" & FECHA.Today.Month.ToString & "-" & FECHA.Today.Day.ToString & ".bat"
        If File.Exists(FILE_NAME) = False Then
            sr = File.CreateText(FILE_NAME)
            sr.Close()
        Else
        End If

        'ESCRIBIMOS DENTRO DEL bat
        ' Dim Ruta As String
        sr = File.CreateText(FILE_NAME)

        sr.WriteLine([b]ACA VA EL CUERPO DEL BAT OK[/b])
        sr.Close()
    End Sub


'En el load:aqui cargamos las unidades en el combo
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.creaTxt()'llamamos el sub de arriba
        Dim Archivos() As String
        Dim Ruta As String
        Dim i As Integer
        Archivos = Directory.GetLogicalDrives
        For i = 0 To Archivos.Length - 1
            Me.ComboBox1.Items.Add(Archivos(i))
        Next
        Me.ComboBox1.SelectedIndex = 1
        Try
            For j As Int16 = 0 To Me.ComboBox1.Items.Count - 1
                If Me.ComboBox1.Items(j) = driveactual Then
                    Me.ComboBox1.SelectedIndex = j
                    Exit For
                End If
            Next
        Catch ex As Exception
        End Try
    End Sub



'esto en la treeview
'los directorios se muestran completos por ejemplo c:\directorio1\directorio2\hola.txt, pero como solo es necesario poner el hola.txt hay una validacion para sacar el resto, si quieres la sacas.

   Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
        Me.Tag = Me.TreeView1.SelectedNode.Text
        Try
            For Each File As String In Directory.GetFiles(Me.TreeView1.SelectedNode.Text, "*.txt")
                Dim item As New ListViewItem
                Dim cadena As String = File.ToString
                Try
                    For i As Integer = cadena.Length - 1 To 0 Step -1
                        If cadena.Substring(i, 1).ToLower = "\" Then
                            cadena = cadena.Substring(i + 1)
                        End If
                    Next
                Catch ex As Exception
                Finally
                    item.Text = cadena
                    item.ImageIndex = 1
                    Me.ListView1.Items.Add(item)
                End Try
            Next
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub


 
'finalmente cuando los archivos se caerguen en la listivew como iconos, esto es como un explador ok, al hacer doble click se ejecta el archivo

  Private Sub ListView1_DoubleClick1(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick
        Dim i As Integer
        Dim fila As Integer
        fila = Me.ListView1.SelectedIndices.Item(fila)
        Dim ruta As String = Me.Tag & "\" & Me.ListView1.Items(fila).Text
        System.Diagnostics.Process.Start(ruta)
    End Sub


'Yo ya tenia hecha esta aplicacion pero la cree para escribir archivos de texto, pero con el streamwriter puedes escribir de todo archivos xml, txt,bat, etc.
algun fallo me la consultas
a por las buenas ideas

gogos

hola a todos

perdon si los confundi, es que no tengo mucha idea de lo que es un archivo bat. pero estuve averiguando con mas calma y he avanzado mas.

quisiera cambiar la pregunta, si yo tuviera que crear en msdos una carpeta o directorio que contuviera en ella tres carpetas que a su vez contuvieran otras carpetas (sin archivos). como lo haria con un archivo bat?

es posible?

y si no es molestia, quisiera saber que funciones exactamente tiene un archivo bat.

les agradezco sus respuestas.

atte: gogos

:)


MaLkAvIaN_NeT

y yo sigo pensando que tiene que ver esto con .NET  :huh:
a por las buenas ideas

BADBYTE-K

Hola

Jejeje parece que nuestro amigo se confundio de foro, pero de igual forma la solucion para el trabajo con files de MaLkAvIaN_NeT en vb me parece interesante (aunque no lo he testeado)

Lo dejamos en .NET no? por la solucion y gogos puedes preguntar sobre el tema en un foro mas relacionado con ello

Saludos