Anstoss-Jünger Forum  

05. Mai 2025, 22:25:57 *
Willkommen Gast. Bitte einloggen oder registrieren.

Einloggen mit Benutzername, Passwort und Sitzungslänge
 
Übersicht Mitglieder Suche Hilfe Einloggen Registrieren Fussball-Manager
Autor Thema: Informatikgedöns  (Gelesen 2302 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
 
Drucken
18. April 2010, 10:16:13
Flens
Gast
Informatikgedöns

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?

« Letzte Änderung: 15. November 2010, 18:35:00 von dAb »
18. April 2010, 11:35:14 #1
Könnte Diplomarbeit über Anstoss schreiben
****


Geschlecht: Männlich
Ort: Neu Wulmstorf
Beiträge: 8572


Re: Windows Programmablauf schreiben...

Code:
FOR %%D IN (*.*) DO (
  IF %%~zD GEQ   1024000 @xcopy %%D %~d0\Bilder\%computername%\%username% /c/q/r/h
)
Offline
18. April 2010, 11:43:31 #2
Flens
Gast
Re: Windows Programmablauf schreiben...

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?  Roll Eyes

« Letzte Änderung: 18. April 2010, 11:47:16 von Flens »
18. April 2010, 11:47:59 #3
Könnte Diplomarbeit über Anstoss schreiben
****


Geschlecht: Männlich
Ort: Neu Wulmstorf
Beiträge: 8572


Re: Windows Programmablauf schreiben...

ins Batch file Effe

Als Äquivalent zu deinem bisherigen wäre das so

Code:
@echo off
mkdir %~d0\Bilder
mkdir %~d0\Bilder\%computername%
mkdir %~d0\Bilder\%computername%\%username%
FOR %%D IN (*.jpg) DO (
  IF %%~zD GEQ   1024000 @xcopy %%D %~d0\Bilder\%computername%\%username% /c/q/r/h
)

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
Offline
18. April 2010, 11:49:57 #4
Flens
Gast
Re: Windows Programmablauf schreiben...

ins Batch file Effe

Als Äquivalent zu deinem bisherigen wäre das so

Code:
@echo off
mkdir %~d0\Bilder
mkdir %~d0\Bilder\%computername%
mkdir %~d0\Bilder\%computername%\%username%
FOR %%D IN (*.jpg) DO (
  IF %%~zD GEQ   1024000 @xcopy %%D %~d0\Bilder\%computername%\%username% /c/q/r/h
)

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?

« Letzte Änderung: 18. April 2010, 12:00:25 von Flens »
18. April 2010, 12:05:19 #5
Könnte Diplomarbeit über Anstoss schreiben
****


Geschlecht: Männlich
Ort: Neu Wulmstorf
Beiträge: 8572


Re: Windows Programmablauf schreiben...

die Bilder liegen also nicht alle in einem Verzeichnis, richtig?
Offline
18. April 2010, 12:19:26 #6
Flens
Gast
Re: Windows Programmablauf schreiben...

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.
18. April 2010, 12:33:38 #7
Könnte Diplomarbeit über Anstoss schreiben
****


Geschlecht: Männlich
Ort: Neu Wulmstorf
Beiträge: 8572


Re: Windows Programmablauf schreiben...

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!
Offline
18. April 2010, 14:21:03 #8
Flens
Gast
Re: Windows Programmablauf schreiben...

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...
15. November 2010, 18:46:47 #9
Stets voll im Dienst & Mr. Anstoss 2006
Administrator
*****


Wenn du nicht kannst, dann willst du nicht

Geschlecht: Männlich
Ort: Hainstadt
Beiträge: 26318


Re: Informatikgedöns

Wollte mal ne Sortierung für meine Counterdatei schreiben...

Eigentlich ja ne simple Sache... Aber ich bin doch irgendwie am Verzweifeln. Cheesy

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 0j!=300j++) {
	
	
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(filezeile)) {
	
	
	
	
i++;
	
	
	
	
anzahl[i] = zeile.substr(zeile.find('|')+1zeile.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...
__________________

« Letzte Änderung: 15. November 2010, 18:55:35 von dAb »
Offline
16. November 2010, 01:25:03 #10
ManniderLibero77
Gast
Re: Informatikgedöns

Wenn du willst erklär ich es dir. Schick mir ne PN. Cheesy
16. November 2010, 01:29:51 #11
Meine Rechtschreibfehler sind High Potential
Ich kenne jede einzelne Datei von Anstoss 1- Anstoss 2007
*****


Es gibt nur ein Huhn

Geschlecht: Männlich
Ort: Heiligenhaus
Beiträge: 11143


Re: Informatikgedöns

ihr seid doch 10011110101011001101  Cheesy
__________________
Unser ganzes Leben, Unser ganzer Stolz Borussia Dortmund


Manager: Markus Huhn
Verein: SV 09 Dortmund (823344)
Jug
Offline
16. November 2010, 02:13:43 #12
Laufstärke (dieses Mitglied wird praktisch nicht müde, er tippt und tippt und...
*********


Geschlecht: Männlich
Ort: Belo Horizonte
Beiträge: 1803


Re: Informatikgedöns

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 Wink
Offline
16. November 2010, 11:08:06 #13
Stets voll im Dienst & Mr. Anstoss 2006
Administrator
*****


Wenn du nicht kannst, dann willst du nicht

Geschlecht: Männlich
Ort: Hainstadt
Beiträge: 26318


Re: Informatikgedöns

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(1zeile"|")
            
position2 InStr(position 1zeile"|")
            
anzahl(i) = Mid(zeileposition 1position2 position 1)
            
1
    Loop
 
    Close 
#1

    
For 1 To i 1
        Cells
(j1).Value anzahl(j)
        
Cells(j2).Value j
    Next

End Sub

:p
__________________
Offline
16. November 2010, 14:31:54 #14
Laufstärke (dieses Mitglied wird praktisch nicht müde, er tippt und tippt und...
*********


Geschlecht: Männlich
Ort: Belo Horizonte
Beiträge: 1803


Re: Informatikgedöns

Du VB-Hacker  verrückt Cheesy

Code:
01234567890
1|426|15.09.10|00:19
...
10|1036|14.09.10|21:57

anzahl[i] = zeile.substr(zeile.find('|')+1zeile.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(23);
oder
anzahl[i] = zeile.substr(24);

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(34);
oder
anzahl[i] = zeile.substr(35);
Das heißt, du hast immer ein Zeichen zu viel, was das Pipe hinter der Zahl erklären würde.

Du kannst in find auch ein Parameter mitgeben, ab welcher Stelle er suchen soll. Etwa:
pipepos zeile.find('|')+1;
anzahl[i] = zeile.substr(pipeposzeile.find('|'pipepos) - pipepos);

Kannst natürlich auch ohne die Zwischenvariable machen, dann sieht's l33t3r aus  Bäng
anzahl[i] = zeile.substr(zeile.find('|')+1zeile.find('|'zeile.find('|')+1) - zeile.find('|')-1);

Ich hab's nicht getestet, aber sollte eigentlich funktionieren :p
Offline
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS Server Monitor
Seite erstellt in 0.115 Sekunden mit 19 Zugriffen.