Batch Datei automatisiert befüllen?

Begonnen von Trimonium, Januar 03, 2020, 11:23:56

« vorheriges - nächstes »

LED ZEPPELIN

Nur leider mussten die HDDs für den Datenübertrag meines alten Technisat HD S2+ in Fat32 formatiert sein. Daher stammt das Zeug noch.

FAT32 in NTFS geht schon noch über cmd. Habe ich schon mehrfach durchgeführt.
Bin aber auch schon manchmal wegen irgendwelcher Fehler gescheitert.

Ist immer etwas Gläcksache habe ich so das Gefühl. (Jaja, das hat alles Ursachen. Mir schon klar.)

LED ZEPPELIN

Lasse gerade mal ein paar Testreihen durchlaufen.
Scheint zu funktionieren.
Ich schaue mir nach dem Ende mal ein paar Filme durch ob sie auch wirklich richtig durchlaufen.
Aber da bin ich doch recht zuversichtlich.

Vielen vielen Dank.


LED ZEPPELIN

Konnte natürlich nur Stichproben machen, aber die waren erfolgreich.
Das Skript funktioniert offensichtlich.

Vielen Dank nochmal.

LED ZEPPELIN

#93
Hallo Leute,

nachdem bisher alles gut lief taucht seit heute wieder ein Problem auf.
Folgender Fehler tritt auf:
Es ist nicht möglich, einen Index auf ein NULL-Array anzuwenden.
In Zeile:34 Zeichen:1
+ $files = " `""+$dateien[0].FullName+"`""
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArray

In den Ordnern befinden sich ganz normale ts Dateien. Manchmal zwei, manchmal eine.
Das ging bei den anderen HDDS bisher problemlos.

tsduser

Vielleicht zeigst Du uns doch noch ein paar Zeilen mehr VOR und ggfs. NACH der Meldung...
Da muesste doch, glaube ich, eine Kontrollausgabe des gerade bearbeiteten Verzeichnisses dabeisein.

Ich moechte fast wetten, dass es irgendein LEERES Verzeichnis (oder zumindest ohne .ts-Dateien) auf der Quelle gibt...
$dateien ist ja das Array der gefundenen Dateiobjekte, und wenn das leer ist, dann wurden keine dem Muster entsprechenden Dateien gefunden...

Sonst muss ich den Thread noch einmal durchwuehlen nach dem letzten Stand des von Dir verwendeten Skriptes :-)

tsduser

Vielleicht reicht's auch schon, wenn Du als neue Zeile 40 (also UNTER die auskommentierte Zeile "Read-Host...") einfuegst:
} else { Write-Host "Keine .ts-Dateien in " + $ordner.Fullname + " gefunden." }
und DANACH als neue Zeile 34
if ( $dateien.Count -ne 0 ) {

LED ZEPPELIN

In den Ordnern sind definitiv ts Dateien.
Siehe Anhang.
Dort findest Du auch das aktuelle Skript das ich verwende und eine größere Liste der Fehlermeldungen.

Leere Ordner oder welche ohne ts Dateien waren bisher waren bisher nicht das Problem, dann kommt zwar auch die Fehlermeldung, aber alle Ordner mit ts Dateien im selben Verzeichnis wurden trotzdem korrekt bearbeitet.

Ich kann da echt keinerlei Muster erkennen wenn ich mir die Ordner ansehe.
An den Umlauten liegt es nicht. An der Anzahl der ts Dateien auch nicht .
Keine Ahnung was da los ist.

LED ZEPPELIN

Soll das so aussehen
#                Read-Host -Prompt "Enter..."
} else { Write-Host "Keine .ts-Dateien in " + $ordner.Fullname + " gefunden." }
            }
        }
    } else { Write-Host "Keine Ordner in $Quelle gefunden." }
} else { Write-Host "Zielverzeichnis $Ziel existiert nicht!" }

Funktioniert leider nicht.

LED ZEPPELIN

Mit der neuen Zeile 34 funktioniert es auch nicht.
Wobei ich nicht ausschliessen möchte, dass ich was falsch eingebe im Skript.

Kriege folgende Meldung:
Die schließende "}" fehlt im Anweisungsblock oder der Typdefinition.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingEndCurlyBrace

tsduser

Hm, so auf den ersten Blick sind das immer die Verzeichnisse, in denen sich nur eine einzige Datei befindet.
Bis auf "1 Mord für 2"...

Und sonst:
Für den zweiten Teil ist das Gepostete richtig. Aber ich hoffe, Du hast auch den ersten Teil (den mit "if ( $dateien...") eingefuegt.
Aber weil ja tatsaechlich zumindest die Verzeichnisausgabe .TS anzeigt, wird der Schnellschuss vmtl. nicht helfen.

Zeig' doch mal wieder ein "dir /ogn /x" von den Verzeichnissen
T:\... und morgen fahrt ihr zur Hoelle
T:\1 Mord für 2
T:\8 Blickwinkel
T:\Airborne - Fluegel aus Stahl


PS:
Warum schreibst Du auf einmal "Hoelle" und "Fluegel"? ;D

PS2: (wegen neuem Post)
Poste doch noch einmal das komplette neue Skript.

LED ZEPPELIN

Das Skript sieht so aus.

# falls Zielverzeichnis existiert
if ( Test-Path -Path $Ziel -PathType Container ) {

    # Einlesen der Verzeichnisse im Quellordner
    $folders = Get-ChildItem -Directory -Path $Quelle

    # falls Ordner vorhanden
    if ( $folders.Count -ne 0 ) {
        foreach ( $ordner in $folders ) {
            # Kontrollausgabe
            $ordner.FullName
            # Name der Zieldatei
            $Stub = $Ziel + $ordner.BaseName
            # neue Datei
            $target = $Stub + ".ts"
            # bei Leerzeichen Anfuehrungszeichen hinzu
            $target = "`"" + $target + "`""
            # Suchmaske fuer Dateien im Ordner
            $files = $ordner.FullName + "\*.ts"

            # falls weder Zieldatei noch getestete Zieldatei vorhanden sind...
            if ( -not ( Test-Path -Path $target ) ) {
                # bei Leerzeichen Anfuehrungszeichen hinzu wg. DOS
                $dateien = Get-ChildItem -File -Path $files | Sort-Object -Property Name
                if ( $dateien.Count -ne 0 ) {
for ( $i = 1 ; $i -lt $dateien.Count ; $i++ ) { $files += " + `""+($dateien[$i].FullName)+"`" " }
                # Combine per DOS-copy anwerfen
                Start-Process -FilePath "$env:comspec" -ArgumentList "/c","copy","/b",$files,$target -Wait
                # nach jedem Verzeichnis auf Enter-Taste warten
#                Read-Host -Prompt "Enter..."
} else { Write-Host "Keine .ts-Dateien in " + $ordner.Fullname + " gefunden." }
            }
        }
    } else { Write-Host "Keine Ordner in $Quelle gefunden." }
} else { Write-Host "Zielverzeichnis $Ziel existiert nicht!" }

Funktioniert aber auch nur teilweise.
Dateien werden für Millisekunden geöffnet und dann ist Ende.

Bis auf Arbitrage keiner zusammengefügt:

T:\... und morgen fahrt ihr zur Hoelle
Keine .ts-Dateien in  + T:\... und morgen fahrt ihr zur Hoelle +  gefunden.
T:\1 Mord für 2
Keine .ts-Dateien in  + T:\1 Mord für 2 +  gefunden.
T:\100 Songs, die die Welt bewegten 1
T:\100 Songs, die die Welt bewegten 2
T:\12 Uhr mittags
T:\2 Guns
T:\5 Days of War
T:\8 Blickwinkel
Keine .ts-Dateien in  + T:\8 Blickwinkel +  gefunden.
T:\96 Hours - Taken 2 (Extended Cut)
T:\Abenteuer Sibirien
T:\Air Force One is Down 1+2
T:\Airborne - Bete, daß sie nicht landen
Keine .ts-Dateien in  + T:\Airborne - Bete, daß sie nicht landen +  gefunden.
T:\Airborne - Fluegel aus Stahl
Keine .ts-Dateien in  + T:\Airborne - Fluegel aus Stahl +  gefunden.
T:\Akte D (1-3)
T:\Akte D (2-3)
T:\Alarm im Pazifik
Keine .ts-Dateien in  + T:\Alarm im Pazifik +  gefunden.
T:\Alarmstufe_ Rot 2
Keine .ts-Dateien in  + T:\Alarmstufe_ Rot 2 +  gefunden.
T:\Alexander der Große
T:\Als die Welt in Flammen stand 1
Keine .ts-Dateien in  + T:\Als die Welt in Flammen stand 1 +  gefunden.
T:\Als die Welt in Flammen stand 2
Keine .ts-Dateien in  + T:\Als die Welt in Flammen stand 2 +  gefunden.
T:\Als die Welt in Flammen stand 3
Keine .ts-Dateien in  + T:\Als die Welt in Flammen stand 3 +  gefunden.
T:\Als die Welt in Flammen stand 4
Keine .ts-Dateien in  + T:\Als die Welt in Flammen stand 4 +  gefunden.
T:\Amerika und seine Kriege - Die Feldzü
Keine .ts-Dateien in  + T:\Amerika und seine Kriege - Die Feldzü +  gefunden.
T:\Amerikas geheimer Krieg in Laos
T:\Arabeske
Keine .ts-Dateien in  + T:\Arabeske +  gefunden.
T:\Arbitrage
T:\Archie und Harry - Sie können's nicht
T:\Ardennen 1944 (Attack)
Keine .ts-Dateien in  + T:\Ardennen 1944 (Attack) +  gefunden.
T:\Art of War
T:\Assault on Wall Street
T:\Auf Leben und Tod 90. Scholl-Latour
T:\Aufstand im Morgengrauen
Keine .ts-Dateien in  + T:\Aufstand im Morgengrauen +  gefunden.
T:\Auftrag Mord
Keine .ts-Dateien in  + T:\Auftrag Mord +  gefunden.
T:\Back in Black - Die Renaissance der S
Keine .ts-Dateien in  + T:\Back in Black - Die Renaissance der S +  gefunden.
T:\Back in Black - Die Renaissance der Schallplatte
T:\Back in the Game
T:\Bad 25
T:\Bad Country
Keine .ts-Dateien in  + T:\Bad Country +  gefunden.
T:\Bean - Der ultimative Katastrophenfil
T:\Bee Gees_ Brüder im Discofieber
T:\Berlin 1945 - Ueberleben im Bunker

Im Anhang die Übersicht.

"Hoelle" weil ich die Probleme mit Umlauten vermeiden wollte.



tsduser

OK, die Pluszeichen in der Ausgabe-Zeile "Keine ts.-Dateien..." sind ueberfluessig; die koennen wech.

Ansonsten meint das Skript, dass eben keine gesuchten Dateien in den Verzeichnissen zu finden seien. Das ist merkwuerdig, weil Dein Unterverzeichnislisting solche Dateien ja anzeigte.

Deswegen richtete sich meine Frage mit dem "dir /x" auch nicht auf das Wurzelverzeichnis von T:\, sondern auf den Inhalt der genannten Verzeichnisse, denn da liegen die nicht gefundenen Dateien ja offenbar drin.

Kannst Du die noch liefern, bitte?

"12 Uhr mittags" wurde NICHT zusammengefuegt?

Und: Umlaute sind nur EIN moegliches Problem. Die ganzen Sonderzeichen inkl. Leerzeichen machen die Sache grundsaetzlich nicht leichter  :)

tsduser

Ach ja, und dann noch:
Ich hoffe, dass das abgebildete Skript NICHT dem entspricht, was Du bei Dir vorliegen hast, dann da fehlt der Anfang.

Aber was noch schlimmer ist:
Du hast die "neue Zeile 34" nicht EINGEFUEGT wie beschrieben, sondern die vorhandene Zeile 34 ERSETZT. Das war nicht, um was ich Dich gebeten hatte, denn so fehlt eigentlich immer der erste Teil beim Zusammenfuegen.

Mal abgesehen davon, dass ausser der Übertragung auf das Ziellaufwerk und evtl. einer Umbenennung bei 1-teiligen Dateien das Skript ueberhaupt nicht benoetigt wuerde...

LED ZEPPELIN

 Hier mal eines der Verzeichnise von

T:\12 Uhr mittags

18.06.2018  16:09    <DIR>                       .
18.06.2018  16:09    <DIR>                       ..
05.02.2014  20:41     4.286.940.371 12UHRM~1.TS  12 Uhr mittags.TS
05.02.2014  20:50     3.990.656.757 12UHRM~2.TS  12 Uhr mittags1.TS
05.02.2014  20:41         4.630.128 ZWLFUH~1.DES Zwölf Uhr mittags.DESC
05.02.2014  20:57           196.608 ZWLFUH~1.MKS Zwölf Uhr mittags.MKS
05.02.2014  20:57             4.836 ZWLFUH~1.REC Zwölf Uhr mittags.REC
               5 Datei(en),  8.282.428.700 Bytes
               2 Verzeichnis(se), 13.209.103.360 Bytes frei

Weitere folgen

LED ZEPPELIN

Doch, das ist alles was ich habe als Skript.
Ich hatte es mit einfügen versucht, das ging gar nicht. Dann habe ich die Zeile ersetzt und es lief wenigstens etwas.
Aber ich ändere das jetzt und poste das Ergebnis.

Was fehlt da am Anfang?


www.cypheros.de