Bitte um Unterstützung: Automatisches Kopieren von CD-Inhalten nach Eingabe des Zielordnernamens
Moderators: Hacker, Stefan2, white
Bitte um Unterstützung: Automatisches Kopieren von CD-Inhalten nach Eingabe des Zielordnernamens
Hallo liebe Leute hier,
nachdem ich mich mein Leben lang in alle möglichen Problemstellungen eingearbeitet habe, sei es javascript, php oder vbs, möchte ich aus Zeitgründen fragen, ob ihr mir bei einem Problem helfen könnt.
Mein 93 jähriger Vater hat, warum auch immer, seine komplette Bildersammlung auf seinem PC verloren. Es gibt zwar ein Backup, welches eine Computerfirma ihm eingerichtet hat, aber die sagen, sie finden dort ebenfalls kein Bildmaterial. Offensichtlich hat er aber noch viele Foto-CD's, die er auf seinen Computer übertragen könnte.
Ich war kürzlich bei meinem Vater, der über 100km entfernt wohnt, und hab ihm den Total Commander installiert. Er kam mit dem Kopieren über den Explorer gar nicht zurecht, und ich hab ihm im Total Commander 2 Buttons eingerichtet, damit er immer sein CD-Laufwerk in einem Fenster findet und im anderen direkt in seinem Bilderordner landet. Hab ihm dann gezeigt und aufgeschrieben, wie er im Bilderordner einen neuen Ordner anlegen kann, in den er dann den Inhalt der Foto CD reinkopieren kann. Ich dachte, somit kann nichts mehr schief gehen. Jetzt hat er mich aber gestern Abend angerufen und mir erzählt, daß er auch damit nicht zurecht kommt.
Jetzt meine Frage und Bitte an Euch:
gäbe es eine Möglichkeit, ein kleines Script zu schreiben, daß er nur noch anklickt, dann kommt eine Abfrage, wie ein neuer Ordner heißen soll, wenn ein Ordner mit gleichem Namen schon existiert, wird die Abfrage wiederholt, der Ordner wird dann automatisch angelegt und automatisch der Inhalt der CD in diesen Ordner kopiert. Mein Vater würde also nur noch die CD einlegen, einen Ordnernamen eingeben und alles andere würde dann automatisch ablaufen. Ich hab keine Ahnung von Batch-Scripten, stecke über beide Ohren in Arbeit, und habe die Hoffnung, daß es hier eine gute Seele gibt, die sagt, nichts leichter als das, ich helfe gerne einem alten Mann, und mir ein kleines Script dafür schreibt? Ich glaube tatsächlich, daß das nichts Großes ist und würde mich liebend gerne damit beschäftigen. Ich säße aber Stunden daran und hier macht das vielleicht jemand in ein paar Minuten.
Ich bin sehr gespannt, ob sich jemand findet und würde mich, auch im Namen meines Vaters, wahnsinnig über Unterstützung freuen.
Danke und Grüße, chapolote
nachdem ich mich mein Leben lang in alle möglichen Problemstellungen eingearbeitet habe, sei es javascript, php oder vbs, möchte ich aus Zeitgründen fragen, ob ihr mir bei einem Problem helfen könnt.
Mein 93 jähriger Vater hat, warum auch immer, seine komplette Bildersammlung auf seinem PC verloren. Es gibt zwar ein Backup, welches eine Computerfirma ihm eingerichtet hat, aber die sagen, sie finden dort ebenfalls kein Bildmaterial. Offensichtlich hat er aber noch viele Foto-CD's, die er auf seinen Computer übertragen könnte.
Ich war kürzlich bei meinem Vater, der über 100km entfernt wohnt, und hab ihm den Total Commander installiert. Er kam mit dem Kopieren über den Explorer gar nicht zurecht, und ich hab ihm im Total Commander 2 Buttons eingerichtet, damit er immer sein CD-Laufwerk in einem Fenster findet und im anderen direkt in seinem Bilderordner landet. Hab ihm dann gezeigt und aufgeschrieben, wie er im Bilderordner einen neuen Ordner anlegen kann, in den er dann den Inhalt der Foto CD reinkopieren kann. Ich dachte, somit kann nichts mehr schief gehen. Jetzt hat er mich aber gestern Abend angerufen und mir erzählt, daß er auch damit nicht zurecht kommt.
Jetzt meine Frage und Bitte an Euch:
gäbe es eine Möglichkeit, ein kleines Script zu schreiben, daß er nur noch anklickt, dann kommt eine Abfrage, wie ein neuer Ordner heißen soll, wenn ein Ordner mit gleichem Namen schon existiert, wird die Abfrage wiederholt, der Ordner wird dann automatisch angelegt und automatisch der Inhalt der CD in diesen Ordner kopiert. Mein Vater würde also nur noch die CD einlegen, einen Ordnernamen eingeben und alles andere würde dann automatisch ablaufen. Ich hab keine Ahnung von Batch-Scripten, stecke über beide Ohren in Arbeit, und habe die Hoffnung, daß es hier eine gute Seele gibt, die sagt, nichts leichter als das, ich helfe gerne einem alten Mann, und mir ein kleines Script dafür schreibt? Ich glaube tatsächlich, daß das nichts Großes ist und würde mich liebend gerne damit beschäftigen. Ich säße aber Stunden daran und hier macht das vielleicht jemand in ein paar Minuten.
Ich bin sehr gespannt, ob sich jemand findet und würde mich, auch im Namen meines Vaters, wahnsinnig über Unterstützung freuen.
Danke und Grüße, chapolote
Re: Bitte um Unterstützung
Hallo! Es gibt zwei Lösungsmöglichkeiten — eine vollautomatische Lösung (über einen Scheduler) oder die eine Selbstausführung des Skripts erfordert.
Im ersten Fall muss man wissen, welches Merkmale (Label, Name des Root-Verzeichnisses) die Foto-CDs haben, um sie nicht mit anderen zu verwechseln.
Sie müssen auch verstehen, wo der resultierende Ordner geöffnet werden soll — im TC oder Explorer.
Im ersten Fall muss man wissen, welches Merkmale (Label, Name des Root-Verzeichnisses) die Foto-CDs haben, um sie nicht mit anderen zu verwechseln.
Sie müssen auch verstehen, wo der resultierende Ordner geöffnet werden soll — im TC oder Explorer.
Overquoting is evil! 👎
Re: Bitte um Unterstützung
Hallo Flasher, eine Selbstausführung wäre vollkommen ausreichend. Einfach einen Button oben in der Buttonbar, der das Script ausführt. Dann legt mein Vater die CD ein und betätigt den Button. Die Pfade zum CD-Laufwerk und dem Bilderordner könnte ich dann anpassen
Re: Bitte um Unterstützung
Dann ist hier nichts Schwieriges. ->
CopyAllFromCD.vbs
Code: Select all
'———————————————————————————————————————————
' Erstellen eines neuen Ordners und Kopieren
' des Inhalts einer CD, falls vorhanden
Option Explicit: Const TargPath = "D:\Fotos"
'———————————————————————————————————————————
Dim oApp, oFSO, D, Y, DirName, S, R, i, DName, c, Check
Set oApp = CreateObject("Shell.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
For Each D In oFSO.Drives
If D.DriveType = 4 Then
If D.IsReady Then
With CreateObject("htmlfile")
Y = 96/.Parentwindow.Screen.deviceYDpi
Y = 15*Y*(.Parentwindow.Screen.Height-188*Y)/2
End With
DirName = Trim(InputBox(String(5, vbLf) & "Geben Sie einen " &_
"Ordnernamen ein:", " Kopieren von einer CD", "Neuer_Ordner",, Y))
If DirName = "" Then WSH.Quit
S = Split(": ? * "" / | < >")
R = Array(-230,-225,-246,698,-24,-24,706,707)
For i = 0 To 7: DirName = Replace(DirName, S(i), ChrW(R(i))): Next
oApp.Namespace(Left(TargPath, 2)).NewFolder Mid(TargPath, 4)
DName = DirName
While oFSO.FolderExists(oFSO.BuildPath(TargPath, DName))
c = c + 1
DName = DirName & "_" & c
Wend
oApp.Namespace(TargPath).NewFolder DName
oApp.Namespace(oFSO.BuildPath(TargPath, DName)).CopyHere D.Path & "\*", 5652
oApp.Open oFSO.BuildPath(TargPath, DName)
Check = 1
Exit For
End If
End If
Next
If IsEmpty(Check) Then MsgBox "Legen Sie die Foto-CD ein!", 4160
Set oApp = Nothing
Set oFSO = Nothing
Last edited by Fla$her on 2025-01-20, 21:46 UTC, edited 5 times in total.
Overquoting is evil! 👎
Re: Bitte um Unterstützung
Dankeschön!
Das liest sich ja wie vba. Fast zumindest. Wend kenn ich beispielsweise nicht aus vba als Ende einer While- Schleife.
Lese ich das richtig, daß da keine Nutzerabfrage nach dem neuen Ordnernamen ist? Wenn ja, dann versuche ich mal selber dran….
Das liest sich ja wie vba. Fast zumindest. Wend kenn ich beispielsweise nicht aus vba als Ende einer While- Schleife.
Lese ich das richtig, daß da keine Nutzerabfrage nach dem neuen Ordnernamen ist? Wenn ja, dann versuche ich mal selber dran….
Re: Bitte um Unterstützung
Jetzt gibt es. Der Code wurde aktualisiert.chapolote wrote: 2025-01-18, 20:05 UTC Lese ich das richtig, daß da keine Nutzerabfrage nach dem neuen Ordnernamen ist?
Overquoting is evil! 👎
Re: Bitte um Unterstützung
Habe eigentlich gestern schon geantwortet, aber wohl nicht abgeschickt. Deshalb jetzt nochmal 1000 Dank für die Hilfe und Unterstützung. Hab es noch ein bisschen umgebaut, daß das Script erst prüft, ob eine CD eingelegt ist und ansonsten abbricht. Und zum Schluss lass ich noch ein Explorer Fenster öffnen, das direkt den Ordnerinhalt anzeigt. Hätte ich auch mit dem TotalCommander machen können, aber dann wäre mein Papa vielleicht wieder überfordert.
Das einzige, was ich nicht hinbekommen habe, ist, daß wenn er mehrere CD's nacheinander einliest, sich der Ordnerinhalt immer im aktuellen Explorer-Fenster öffnet. Gab da so ein Schalter, ich glaube explorer.exe /e, aber dann öffnet er mir immer meinen Dokumenten-Ordner anstatt dem Bilderordner. Ist aber zu verschmerzen, wenn dann ein neues Explorer Fenster aufgeht.
Also nochmals vielen, vielen Dank.
Das einzige, was ich nicht hinbekommen habe, ist, daß wenn er mehrere CD's nacheinander einliest, sich der Ordnerinhalt immer im aktuellen Explorer-Fenster öffnet. Gab da so ein Schalter, ich glaube explorer.exe /e, aber dann öffnet er mir immer meinen Dokumenten-Ordner anstatt dem Bilderordner. Ist aber zu verschmerzen, wenn dann ein neues Explorer Fenster aufgeht.
Also nochmals vielen, vielen Dank.
Re: Bitte um Unterstützung
Kein Problem.
Sie selbst wollten jedoch nicht auf den letzten Satz antworten
Worüber reden Sie? Dies wurde bereits durch die IsReady-Prüfung getan.chapolote wrote: 2025-01-20, 17:58 UTCHab es noch ein bisschen umgebaut, daß das Script erst prüft, ob eine CD eingelegt ist und ansonsten abbricht.
In diesem Fall sehe ich keinen Sinn, sich mit Total Commander in Verbindung zu setzen. Es ist einfacher, die Schaltfläche als Verknüpfung auf dem Desktop zu erstellen.chapolote wrote: 2025-01-20, 17:58 UTCHätte ich auch mit dem TotalCommander machen können, aber dann wäre mein Papa vielleicht wieder überfordert.
Sie selbst wollten jedoch nicht auf den letzten Satz antworten
, also ist es nicht meine Schuld. Zeile 32 hinzugefügt.Fla$her wrote: 2025-01-18, 12:16 UTCSie müssen auch verstehen, wo der resultierende Ordner geöffnet werden soll — im TC oder Explorer.
Ich habe nicht verstanden, was Sie wollen. Der erste und letzte Satz widersprechen sich.chapolote wrote: 2025-01-20, 17:58 UTCDas einzige, was ich nicht hinbekommen habe, ist, daß wenn er mehrere CD's nacheinander einliest, sich der Ordnerinhalt immer im aktuellen Explorer-Fenster öffnet. Gab da so ein Schalter, ich glaube explorer.exe /e, aber dann öffnet er mir immer meinen Dokumenten-Ordner anstatt dem Bilderordner. Ist aber zu verschmerzen, wenn dann ein neues Explorer Fenster aufgeht.
Overquoting is evil! 👎
Re: Bitte um Unterstützung
Das stimmt, nur die Abfrage durch die InputBox kam davor. Jetzt kommt die Abfrage erst, wenn tatsächlich eine CD im Laufwerk ist.Fla$her wrote: 2025-01-20, 19:09 UTC Worüber reden Sie? Dies wurde bereits durch die IsReady-Prüfung getan.
Also so:
Code: Select all
Set oApp = CreateObject("Shell.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
For Each D In oFSO.Drives
If D.DriveType = 4 Then
If D.IsReady Then
Check = 1
End If
End If
Next
If IsEmpty(Check) Then
MsgBox "Legen Sie die Foto-CD ein und starten Sie das Programm neu!", 4160
WScript.Quit
End If
...
...
ich habe zum Schluß noch folgendes eingefügt:Fla$her wrote: 2025-01-20, 19:09 UTC Ich habe nicht verstanden, was Sie wollen. Der erste und letzte Satz widersprechen sich.
Code: Select all
ExpPath =TargPath & "\" & DName
Set objShell = CreateObject("WScript.Shell")
objShell.Run "explorer.exe " & ExpPath
Aber wie schon gesagt, damit kann ich leben.
Re: Bitte um Unterstützung
Einverstanden. Ich habe diesen Teil in die Bedingung verschoben.chapolote wrote: 2025-01-20, 21:17 UTC Jetzt kommt die Abfrage erst, wenn tatsächlich eine CD im Laufwerk ist.
Es ist besser, das nicht zu tun. Dafür gibt es bessere Methoden: Open (in meinem Code) und ShellExecute.
Im selben Fenster kann der Ordner nicht geöffnet werden. Stattdessen können Sie alle Explorer-Fenster vor dem Öffnen schließen.
Overquoting is evil! 👎
Re: Bitte um Unterstützung
Danke für den Hinweis mit dem Explorer und das nochmalige anpassen des Scripts.
Re: Bitte um Unterstützung
Hallo chapolote,
findest du nicht, dass man seinem alten Vater mal schnell ein paar CDs auf den Rechner kopieren kann, als hier die Welt verrückt zu machen?
Wenn dein Vater, in seinem Windows das CD Laufwerk nicht mehr findet, dann schenke ihm eine externe Festplatte, auf die du alle seine Bilder kopierst, und machst am besten eine Kopie davon.
Das ist die Unterstützung, die dein Vater benötigt, und keine bescheuerten Skripte oder Buttons in einer Software, die er gar nicht versteht.
Viele Grüße vom Almhirten
findest du nicht, dass man seinem alten Vater mal schnell ein paar CDs auf den Rechner kopieren kann, als hier die Welt verrückt zu machen?
Wenn dein Vater, in seinem Windows das CD Laufwerk nicht mehr findet, dann schenke ihm eine externe Festplatte, auf die du alle seine Bilder kopierst, und machst am besten eine Kopie davon.
Das ist die Unterstützung, die dein Vater benötigt, und keine bescheuerten Skripte oder Buttons in einer Software, die er gar nicht versteht.
Viele Grüße vom Almhirten
Re: Bitte um Unterstützung
2chapolote
Bitte sehr. Möchten Sie also, dass ich dem Code das Vorabschließen aller Explorer-Fenster hinzufüge?
Bitte sehr. Möchten Sie also, dass ich dem Code das Vorabschließen aller Explorer-Fenster hinzufüge?
Last edited by Fla$her on 2025-01-21, 15:56 UTC, edited 1 time in total.
Overquoting is evil! 👎
Re: Bitte um Unterstützung
Wie gut, Almhirte, daß Du die Gegebenheiten kennst bei uns, das Ausmaß seiner CD-Sammlung, die Entfernung zu ihm usw.Almhirte wrote: 2025-01-21, 09:00 UTC Hallo chapolote,
findest du nicht, dass man seinem alten Vater mal schnell ein paar CDs auf den Rechner kopieren kann, als hier die Welt verrückt zu machen?
Wenn dein Vater, in seinem Windows das CD Laufwerk nicht mehr findet, dann schenke ihm eine externe Festplatte, auf die du alle seine Bilder kopierst, und machst am besten eine Kopie davon.
Das ist die Unterstützung, die dein Vater benötigt, und keine bescheuerten Skripte oder Buttons in einer Software, die er gar nicht versteht.
Viele Grüße vom Almhirten
Danke für Deine überaus anmaßende Belehrung.
Es zwingt Dich doch keiner, hier mitzulesen, wenn es Dich denn verrückt macht.
Re: Bitte um Unterstützung
Nein Danke, das ist nicht nötig.Fla$her wrote: 2025-01-21, 09:34 UTC Bitte sehr. Möchten Sie also, dass ich dem Code das Vorabschließen aller Explorer-Fenster hinzufüge?