Titel: Informatikgedöns Beitrag von: Flens am 18. April 2010, 10:16:13 Hallo Ihr lieben.
suche ein Programm mit dem ich auf einem PC alle Bilder z.B. über 1 MByte herrunterladen kann auf die externe Festplatte von der ich es ausführe. Das ganze sollte so sein das mit dem einen doppelklick alles getan ist. Es soll auf keinenfall angezeigt werden wie lange es noch dauert, das überhaupt was kopiert wird oder wenn es beendet ist. Kann man sich sowas basteln? Zitat @echo off mkdir %~d0\Bilder mkdir %~d0\Bilder\%computername% mkdir %~d0\Bilder\%computername%\%username% xcopy "C:\*.jpg" %~d0\Bilder\%computername%\%username% /s/c/q/r/h Das wäre zum beispiel eine Batch Datei die alle Bilder von C:\ in den vorher erstellten Ordner Bilder kopiert... Ich will aber nur die Bilder die über 1 MB haben... Weiß da einer weiter? Titel: Re: Windows Programmablauf schreiben... Beitrag von: Löwenfan am 18. April 2010, 11:35:14 Code: FOR %%D IN (*.*) DO ( Titel: Re: Windows Programmablauf schreiben... Beitrag von: Flens am 18. April 2010, 11:43:31 Hi Löwe,
kannst du mir erklären wie ich das anwende? Edit: Alles klar, völlig eigenständig... Supi... wenn das jetzt noch nur im Hintergrund laufen könnte? :rolleyes: Titel: Re: Windows Programmablauf schreiben... Beitrag von: Löwenfan am 18. April 2010, 11:47:59 ins Batch file :effe:
Als Äquivalent zu deinem bisherigen wäre das so Code: @echo off Die For-Schleife durchläuft den Block () für jede *.jpg Datei. Dabei wird die Dateigröße (%%~zD) darauf getestet, ob sie größer (GEQ) als 1024000 Byte (= 1MB) ist. Wenn das der Fall ist, wird der xcopy-Befehl ausgeführt. Das Gegenstück zu GEQ wäre LEQ :bier: Titel: Re: Windows Programmablauf schreiben... Beitrag von: Flens am 18. April 2010, 11:49:57 ins Batch file :effe: Als Äquivalent zu deinem bisherigen wäre das so Code: @echo off Die For-Schleife durchläuft den Block () für jede *.jpg Datei. Dabei wird die Dateigröße (%%~zD) darauf getestet, ob sie größer (GEQ) als 1024000 Byte (= 1MB) ist. Wenn das der Fall ist, wird der xcopy-Befehl ausgeführt. Das Gegenstück zu GEQ wäre LEQ :bier: Sehr geil, du kennst dich ja genial aus... Also ich hab die Batch auf meiner Externen Festplatte und will alle Bilder (größer x) die auf meinem PC sind kopieren und auf der Platte haben. Die Ordner Struktur soll beibehalten werden. Geht das? Titel: Re: Windows Programmablauf schreiben... Beitrag von: Löwenfan am 18. April 2010, 12:05:19 die Bilder liegen also nicht alle in einem Verzeichnis, richtig?
Titel: Re: Windows Programmablauf schreiben... Beitrag von: Flens am 18. April 2010, 12:19:26 die Bilder liegen also nicht alle in einem Verzeichnis, richtig? Richtig... Must du dir so vorstellen das ich alle selbst geschossenen Bild von einem PC auf ein Externes Laufwerk sichern will. Titel: Re: Windows Programmablauf schreiben... Beitrag von: Löwenfan am 18. April 2010, 12:33:38 Probier mal
Code: FOR /R %%D .... allerdings habe ich jetzt nicht getestet, ob die Verzeichnisstruktur beim xcopy dann richtig angelegt wird. ich vermute gerade eher, dass alle jpgs in einem Verzeichnis landen. Aber Versuch macht klug! Titel: Re: Windows Programmablauf schreiben... Beitrag von: Flens am 18. April 2010, 14:21:03 Probier mal Code: FOR /R %%D .... allerdings habe ich jetzt nicht getestet, ob die Verzeichnisstruktur beim xcopy dann richtig angelegt wird. ich vermute gerade eher, dass alle jpgs in einem Verzeichnis landen. Aber Versuch macht klug! Jupp, wird alles in einen Ordner geworfen... Titel: Re: Informatikgedöns Beitrag von: dAb am 15. November 2010, 18:46:47 Wollte mal ne Sortierung für meine Counterdatei schreiben...
Eigentlich ja ne simple Sache... Aber ich bin doch irgendwie am Verzweifeln. :D Die Datei: 1|426|15.09.10|00:19 2|191|12.09.10|22:07 3|359|14.09.10|16:57 4|294|14.09.10|18:32 5|1294|14.09.10|13:10 6|702|14.09.10|18:34 7|7093|14.09.10|23:50 8|1855|14.09.10|23:06 9|460|13.09.10|13:46 10|1036|14.09.10|21:57 11|452|14.09.10|17:48 12|92|07.09.10|14:33 13|204|12.09.10|16:38 14|82|07.09.10|14:33 15|454|14.09.10|18:45 16|433|14.09.10|18:44 17|926|14.09.10|11:58 18|784|14.09.10|11:58 Geht natürlich noch ein bisschen weiter. Will mir einfach nur die Zahl zwischen dem ersten | und dem zweiten | holen. int main () { string zeile =""; string anzahl[300]; for (int j = 0; j!=300; j++) { anzahl[j] = ""; } int i = 0; setlocale(LC_ALL, "German"); ifstream file; file.open("counter.txt"); if (file==NULL) { cout <<"Die Datei counter.txt befindet sich nicht im Verzeichniss"<<endl; abort(); } else { while(!file.eof()) { while(getline(file, zeile)) { i++; anzahl[i] = zeile.substr(zeile.find('|')+1, zeile.find('.') - 5); cout << anzahl[i] << endl; } } } file.close(); return 0; } Und jetzt das was ich nicht verstehe... Ab der Zeile 10 haut der hinter die Zahl noch den Strich. Also 1036| Das kann doch eigentlich gar nicht sein oder? Ich mach das jetzt auch anders... So wirds dann auch funktionieren. Aber warum das nicht hinhaut wundert mich dann doch... Titel: Re: Informatikgedöns Beitrag von: ManniderLibero77 am 16. November 2010, 01:25:03 Wenn du willst erklär ich es dir. Schick mir ne PN. :D
Titel: Re: Informatikgedöns Beitrag von: der Huhn am 16. November 2010, 01:29:51 ihr seid doch 10011110101011001101 :D
Titel: Re: Informatikgedöns Beitrag von: merfis am 16. November 2010, 02:13:43 Und jetzt das was ich nicht verstehe... Ab der Zeile 10 haut der hinter die Zahl noch den Strich. Also 1036| Das kann doch eigentlich gar nicht sein oder? Ab Zeile 10 ist die erste Spalte zweistellig, du müsstest also 6 abziehen, ab 100 dann 7 usw. Nimm doch einfach die Zahl zwischen dem 1. und dem 2. Pipe ;) Titel: Re: Informatikgedöns Beitrag von: dAb am 16. November 2010, 11:08:06 Keine Ahnung wie man das zweite Pipe bekommt. :p In Excel geht das ohne Probleme, hab das nun auch damit gemacht.
Aber was das zweistellige it den 6 abziehen zu tun hat, verstehe ich nicht. Oder ich habe einen Denkfehler bei den Stringstellen drin. So gefällt mir das eh besser: Private Sub button_counter_Click() Dim zeile As String Dim anzahl(300) As String Dim i As Integer Dim position As Integer Dim position2 As Integer i = 1 Open Application.GetOpenFilename("Dateityp (*.txt),") For Input As #1 Do While Not EOF(1) Line Input #1, zeile position = InStr(1, zeile, "|") position2 = InStr(position + 1, zeile, "|") anzahl(i) = Mid(zeile, position + 1, position2 - position - 1) i = i + 1 Loop Close #1 For j = 1 To i - 1 Cells(j, 1).Value = anzahl(j) Cells(j, 2).Value = j Next End Sub :p Titel: Re: Informatikgedöns Beitrag von: merfis am 16. November 2010, 14:31:54 Du VB-Hacker :hui: :D Code: 01234567890 anzahl[i] = zeile.substr(zeile.find('|')+1, zeile.find('.') - 5); Bei i von 1 bis 9 ist das 1. Pipe an der Stelle 1, der 1. Punkt an der Stelle 8 oder 9. Das hat dann zur Folge anzahl[i] = zeile.substr(2, 3); oder anzahl[i] = zeile.substr(2, 4); Bei i von 10 bis 99 ist das 1. Pipe an der Stelle 2, der 1. Punkt an der Stelle 9 oder 10. Das hat dann zur Folge anzahl[i] = zeile.substr(3, 4); oder anzahl[i] = zeile.substr(3, 5); Das heißt, du hast immer ein Zeichen zu viel, was das Pipe hinter der Zahl erklären würde. Titel: Re: Informatikgedöns Beitrag von: dAb am 16. November 2010, 14:45:52 Hätte ich das mit dem find vorher gewusst, hätte ich das ja auch nicht so gemacht. Danke...
Titel: Re: Informatikgedöns Beitrag von: GM-Sunlion79 am 16. November 2010, 15:14:05 Hätte ich das mit dem find vorher gewusst, hätte ich das ja auch nicht so gemacht. Danke... Deshalb bist du ja der Azubi und merfis der Gott. :D Titel: Re: Informatikgedöns Beitrag von: merfis am 16. November 2010, 16:49:24 Hätte ich das mit dem find vorher gewusst, hätte ich das ja auch nicht so gemacht. Danke... Hättest ja auch nachlesen können :p Deshalb bist du ja der Azubi und merfis der Gott. :D Ich zitier mal dich, das passt grad gut :D [quote author=GM-Sunl |