tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
16
ZUGRIFFE
619
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    flame4ever flame4ever ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    13
    Hallo an Alle,
    ist es möglich im Kopierbefehl eine Variable einzubinden so wie hier bei den konvertieren?

    Kopieren.copyFile "Ordner\Ordner\" & vari & "\Ordner\dat.doc", "Ordner1\Ordner1\" & vari & ".doc", True

    MfG flame4ever
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Welchen Kopierbefehl?

    Grundsätzlich ja.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    flame4ever flame4ever ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    13
    Diesen meine ich:
    Kopieren.copyFile "Ordner\Ordner\" & vari & "\Ordner\dat.doc", "Ordner1\Ordner1\" & vari & ".doc", True
    nur wie übergebe ich richtig eine Variable?
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ist Kopieren ein Object einer selbstgeschriebenen Klasse? Oder was ist Kopieren?

    Nochmals: Grundsätzlich sieht dein Code gut aus. Nur weiss ich nicht, wass Kopieren.copyFile für Parameter erwartet, ergo kann ich dir nicht sagen ob das so mit den Parametern richtig ist.
    Und wie du die Variable 'vari' befüllst weisst du wohl selber.

    Also, was ist die Frage?

    Nachtrag:
    Wirklich sauber währe so etwas (in der Annahme, dass Kopieren ein FileSystemObject ist)
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    
    Dim srcPath AS String
    Dim dstPath AS String
    Dim fso As New FileSystemObject
     
    srcPath = "Ordner\Ordner\" & vari & "\Ordner\dat.doc"
    dstPath = "Ordner1\Ordner1\" & vari & ".doc"
     
    Call fso.copyFile(Source:=srcPath, Destination:=dstPath, OverWriteFiles:=True)
    Geändert von Yaslaw (05.07.10 um 09:41 Uhr)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    flame4ever flame4ever ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    13
    Ja da hast du recht.
    Set Kopieren = CreateObject("Scripting.FileSystemObject")
    vorher habe ich einen ordnernamen ausgelesen und in vari hinterlegt, weil die datei genaus heisen soll.
    Also war der code gundsätzlich richtig?
     

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ja, er ist grundsätzlich richtig
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  7. #7
    flame4ever flame4ever ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    13
    das ist ja schon mal gut und wie bekomme ich es jetzt noch hin alles in eine schleife zu packen, um so mehrere ordner (anzahl unbekannt) bearbeiten zu können?
     

  8. #8
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Bitte definiere deine Schleife mal genauer. Über was soll sie gehen? Hast du ein Array mit den Variablen? Ist es ein Zähler? Ist es eine Leiste aus einer ListBox?
    flame4ever bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  9. #9
    flame4ever flame4ever ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    13
    Das ist das script es liest den namen eines Ordners aus um dann dateien wie den Ordner zu benennen und zu verschieben.
    Jetzt benötige ich eine schleife die das mit alles Ordnern in dem Ordner macht und aufhört wenn alles Ordner abgearbeitet sind.
    Wenn du fragen hast einfach schreiben.


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    Dim Kopieren, objFSO, oFolders, oFolder, oSubFolders, Text
    Set Kopieren = CreateObject("Scripting.FileSystemObject")
    Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    Set oFolders = objFSO.GetFolder("Ordner1\Ordner2\")  'Festlegen des Hauptordners
    Set oSubFolders = oFolders.SubFolders ' Ermitteln der Unterordner
    Dim vari(10)      ' Feldgröße definieren
    For Each oFolder In oSubFolders   
     For test = 1 To 10
     Text = oFolder.Name    ' Speichern des aktuellen unterordner in Variable Text
     vari(test) = "Name " &Text  ' Zuweiseung Feld
      Next
    Next
    Kopieren.copyFile "Ordner1\Ordner2\" & vari & "\Ordner3\dat1.doc", "Ordner1\Ordner6\" & vari & ".doc", True
    If Kopieren.FileExists ("Ordner1\Ordner2\" & vari & "\Ordner4\dat2.doc") Then
    Kopieren.copyFile "Ordner1\Ordner2\" & vari & "\Ordner3\Ordner4\dat2.doc", "Ordner1\Ordner5\" & vari & ".doc", True
    End If
    Kopieren.copyFile "Ordner1\Ordner2\" & vari & "\Ordner3\Ordner4\dat3.doc", "Ordner1\Ordner5\" & vari & ".doc", True
     

  10. #10
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Schmeiss den ganzen Kopieren-Teil in die Schleife (For Each... Next) die du hast. Und schon macht er das mit jedem Ordner *g*. Die For test= Schleife brauchst du nicht.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  11. #11
    flame4ever flame4ever ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    13
    So hab ich es jetzt aber der erkennt den dateipfad nicht, kann es sein das $Text nicht richtig übergeben wir?
    MfG flame4ever
    HTML-Code:
    Dim Kopieren, objFSO, oFolders, oFolder, oSubFolders, Text
    Set Kopieren = CreateObject("Scripting.FileSystemObject")
    Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    Set oFolders = objFSO.GetFolder("Ordner1\Ordner2\")  'Festlegen des Hauptordners
    Set oSubFolders = oFolders.SubFolders ' Ermitteln der Unterordner
    For Each oFolder In oSubFolders   
     Text = oFolder.Name    ' Speichern des aktuellen unterordner in Textable Text
     Kopieren.copyFile "Ordner1\Ordner2\" & Text & "\Ordner3\dat1.doc", "Ordner1\Ordner6\" & Text & ".doc", True
     If Kopieren.FileExists ("Ordner1\Ordner2\" & Text & "\Ordner4\dat2.doc") Then
     Kopieren.copyFile "Ordner1\Ordner2\" & Text & "\Ordner3\Ordner4\dat2.doc", "Ordner1\Ordner5\" & Text & ".doc", True
     End If
     Kopieren.copyFile "Ordner1\Ordner2\" & Text & "\Ordner3\Ordner4\dat3.doc", "Ordner1\Ordner5\" & Text & ".doc", True
    Next
     

  12. #12
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Du hast da ein ziemliches Chaos drin. Warum Kopieren und objFSO? Das sind 2 Objekte derselben Klasse.

    Was zum Teufel kopierst du dann alles herum?

    Mach doch mal ein kleines Datenbeispiel. Also die Struktir IST und die Struktur SOLL

    Etwa so
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    IST:
    HaubtOrdner/Ordner1/Datei1.txt
                       /Datei2.txt
               /Ordner1/Datei3.txt
                       /Datei4.txt
                       
                       
    SOLL:
    Haubtordner/NeuerOrdner/Ordner1_Datei1.txt  
                           /Ordner1_Datei2.txt
                           /Ordner1_Datei3.txt
                           /Ordner1_Datei4.txt
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  13. #13
    flame4ever flame4ever ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    13
    Hab es jetzt etwas verständlicher beschrieben.
    1. auslesen wie der ordner zb_test heist.
    2.Datei pa.doc nach pa kopieren und zu zb_test(pa).doc (ausgelesener ordnername) umbenennen.
    3.wenn m2.doc in pr\zb_test\pa\Q da ist -> nach \Q kopieren und zb_test(pa).doc (ausgelesener ordnername) umbenennen
    -> wenn nicht dann m1.doc aus pr\zb_test\pa\Q -> nach \Q kopieren und zb_test(pa).doc (ausgelesener ordnername) umbenennen
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    IST:
           \pa
           \pr
               \zb_test
                            \pa
                                   \pa.doc
                                   \Q
                                        m1.doc
                                        m2.doc
           \Q
     
    SOLL:
           \pa
                zb_test(pa).doc
           \pr
               \zb_test
                            \pa
                                   \pa.doc
                                   \Q
                                        m1.doc
                                        m2.doc
           \Q
                 zb_test(m2).doc

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    Dim objFSO, oFolders, oFolder, oSubFolders, Text
    Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    Set oFolders = objFSO.GetFolder("Au\Pr\")  'Festlegen des Hauptordners
    Set oSubFolders = oFolders.SubFolders ' Ermitteln der Unterordner
    For Each oFolder In oSubFolders
     Text = oFolder.Name    ' Speichern des aktuellen unterordner in Textable Text
     objFSO.copyFile "Au\Pr\"& Text &"\Pa\Pa.doc", "Au\Pa\"& Text &".doc", True
     If objFSO.FileExists ("Au\Pr\"& Text &"\Pa\Q\M2.doc") Then
     objFSO.copyFile "Au\Pr\"& Text &"\Pa\Q\M2.doc", "Au\Q\"& Text &".doc", True
     End If
     objFSO.copyFile "Au\Pr\"& Text &"\Pa\Q\M1.doc", "Au\Q\"& Text &".doc", True
    Next
     

  14. #14
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    So gehts recht einfach
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    
    Public Sub copyMyFiles()
    On Error GoTo Err_Handler
        
        Const C_START_PATH As String = "C:\temp\vbtest\"
     
        Dim fso As New FileSystemObject     'Dateisystem
        Dim srcMasterFolder As folder       'Sourcen-Ordner     "\pr"
        Dim nameFolder As folder            'Ordner der die neuen Dateinamen bestimmt  "\pr\zb_test"
        
        Set srcMasterFolder = fso.GetFolder(C_START_PATH & "pr")
        
        For Each nameFolder In srcMasterFolder.SubFolders
            Call copyMyFilesLoop(nameFolder, nameFolder.name, C_START_PATH)
        Next nameFolder
        
    Exit_Handler:
    On Error Resume Next
        'Alle Objekte zerstören
        Set nameFolder = Nothing
        Set srcFolder = Nothing
        Set fso = Nothing
        Exit Sub
     
    Err_Handler:
        MsgBox Err.Description
        GoSub Exit_Handler
    End Sub
     
    ' @param    actFolder       Aktueller Ordner
    ' @param    name            Name der für die Dateinamenerstellung gebraucht wird
    ' @param    startPath       C_START_PATH
    Public Sub copyMyFilesLoop(ByVal actFolder As folder, ByVal name As String, ByVal startPath As String)
    On Error GoTo Err_Handler
        Dim srcFolder As folder     'Ordner mit den Source-Dateien
        Dim srcFile As File         'Zu kopierende Datei
        Dim dstName As String       'Ziel-Dateiname
        
        For Each srcFolder In actFolder.SubFolders
            For Each srcFile In srcFolder.Files
                dstName = name & "_" & srcFile.name
                Call srcFile.Copy(startPath & srcFolder.name & "\" & dstName, True)
            Next srcFile
            'Sich selber aufrufen um Unterordner ebenfalls abzuarbeiten
            Call copyMyFilesLoop(tmpFolder, name, startPath)
        Next srcFolder
        
    Exit_Handler:
    On Error Resume Next
        'Alle Objekte zerstören
        Set srcFolder = Nothing
        Set srcFile = Nothing
        Exit Sub
     
    Err_Handler:
        MsgBox Err.Description
        GoSub Exit_Handler
    End Sub
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  15. #15
    flame4ever flame4ever ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    13
    Ist es mit meinem Script auch möglich oder ist es komplett falsch?
     

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 29.11.10, 14:10
  2. Antworten: 1
    Letzter Beitrag: 02.02.08, 23:55
  3. Text aus ListBox in Variable kopieren
    Von Terminator2 im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 09.10.06, 15:13
  4. Graphics objekt sauber in Variable kopieren
    Von Schnubbel im Forum Java
    Antworten: 3
    Letzter Beitrag: 08.06.04, 00:45
  5. Antworten: 2
    Letzter Beitrag: 21.03.04, 23:51