Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateien Kopieren, mit gleichem Namen aber anderer Endung?

Frage Entwicklung Batch & Shell

Mitglied: Driver78

Driver78 (Level 1) - Jetzt verbinden

05.01.2011 um 06:54 Uhr, 7112 Aufrufe, 11 Kommentare

Aufgrund meiner noch zu geringen Kenntnisse was den for befehl anbelangt, benötige ich eure Hilfe.

Guten Morgen,

ich sitze mal wieder an einer Herausforderung, die selber nicht bewerkstellig bekomme.
Kurze Vorgeschichte, für ein besseres Verständniss was ich machen möchte und wo ich eure Hilfe benötige.....

Ich habe mir eine Batch geschrieben die folgende Dinge erledigt:

1. sie lädt mir von dem GameServer die Screenshots runter und legt sie in einem Ordner ab. (PNG Dateien)
2. die Runtergeladenen Bilder werden in einen anderen Ordner verschoben und von png -> ppm umgewandelt
3. damit diese dann aussortiert werden (verdächtige screens in den Ordner Verdächtig)

Nun zu meiner eigentlichen Frage, die Verdächtigen Dateien heißen durchweg alle pb**.ppm. Da diese aber umgewandelt sind, kann ich sie zwar sehen und auch Bewerten, doch ich benötige eigentlich die Orginal PNG Dateien!
Das heißt ich suche die möglichkeit sagen zu können, Kopiere mir alle Dateiennamen die in dem Ordner Verdächtig liegen, aber nicht die sondern diese mit der Endung PNG die in dem anderen Ordner liegen!

Da ich nun nicht weiß ob ich mich sauber genug ausgedrückt habe hier kurz noch ein Beispiel:


%cd%\pb000001.png wird umgewandelt in %cd%\pb000001.ppm und wurde als Verdächtig eingestufft und die *.ppm in den Ordner Verdächtig verschoben (das er die ppm in den Ordner einfügt kann ich nicht beeinflussen)

%cd%\pb000002.png wird umgewandelt in %cd%\pb000002.ppm wurde als Nicht Verdächtig eingestufft

die orginalen png liegt noch in %cd%

nun soll aber, statt die Datei die in dem Ordenre Verdächtig liegt kopieren, die Orginal Dateien aus dem Ordner %cd% in ein anderen Ordner kopieren sprich die Verdächtige %cd%\pb000001.png nach zum Beispiel %cd%\PNG.

Nun denn, vielen Dank für eure Geduld......
Mitglied: H41mSh1C0R
05.01.2011 um 07:11 Uhr
Nichts für ungut, aber die SUFU scheinste ja nicht benutzt zu haben.

http://www.administrator.de/Tutorial_zur_FOR-Schleife.html

Davon mal abgesehen das dieser Link auch auf der Startseite(rechte Seite) zu sehen ist.

VG
Bitte warten ..
Mitglied: Driver78
05.01.2011 um 07:24 Uhr
Das ist so nicht ganz Richtig!

Ich kenne den Befehl, doch mir fehlt das Verstädniss den Befehl so einzusetzen das ich meine Frage damit beantworten könnte! Und Wissen fällt hat bekanntlich nicht vom Himmel.....
Und solange ich keinen Aha Effekt erlebe, das ich verstehe wie der Befehl funktioniert, werde ich auf das Wissen von anderen zurückgreifen müssen. Sorry
Bitte warten ..
Mitglied: H41mSh1C0R
05.01.2011 um 08:15 Uhr
Wenn ich dich richtig verstanden habe in deinem Ausgangspost:

Du wandelst Bilder von png in ppm(was ist das für ein Format?).

Unter Schritt 3 schreibst du das diese aussortiert werden. Sortierst du diese aus? Wenn ja zeige doch ein Schnipsel deiner Batch, wäre hilfreich.

Nun willst du nicht die ppm am Ende verschieben sondern die png? Hast du die png denn überhaupt noch, wenn du oben schreibst du wandelst die von png nach ppm??
Bitte warten ..
Mitglied: Driver78
05.01.2011 um 08:30 Uhr
Hallo,

Portable Pixmap (PPM, Portable PixMap) ist ein Dateiformat zur Speicherung von Bilddaten im RGB-Farbraum. Es handelt sich hier um eine sogenannte Rastergrafik, die mit einer Farbtiefe von 24 Bit 16,7 Mio. Farben (binär) abgespeichert werden kann (im ASCII-Modus sind auch mehr Farben möglich).

Das PPM-Format wurde in den achtziger Jahren von Sun Microsystems definiert. Es kommt in zwei Varianten vor, ASCII und Binär.

Quelle: Wikipedia

Nein, das Aussortieren macht ein externes Programm! Dieses wiederrum verschiebt die PPM Datei in den Ordner Verdächtig, wenn dieses für Verdächtig hällt!
Zwar wird die PNG -> PPM umgewandelt, jedoch ist aber die Orginal PNG noch vorhanden.
Bitte warten ..
Mitglied: BigWim
05.01.2011 um 09:10 Uhr
Moin,

Ich kenne den Befehl, doch mir fehlt das Verstädniss den Befehl so einzusetzen das ich meine Frage damit beantworten könnte
Kenn ich. Dann ein kleines Beispiel.

01.
@echo off & Setlocal 
02.
 
03.
Set sDateiname= 
04.
for /f "tokens=1,2 delims=." %%a in ('dir c:\temp\*.* /b') do call :machwas %%a %%b 
05.
if not defined sDateiname echo *** keine Datei gefunden *** 
06.
goto :eof 
07.
 
08.
:Machwas 
09.
Set sDateiname=%1 
10.
Set sDateiendung=%2 
11.
echo %time%  Datei = %sDateiname% - %sDateiendung%
Markus
Bitte warten ..
Mitglied: H41mSh1C0R
05.01.2011 um 09:30 Uhr
Schön jetzt gibts zwar nen schnipsel Batch, aber ob es dadurch das Aha Erlebnis gibt?

Kurze Erläuterung des Schnipsels. Berichtigt wenn ich was falsch schreibe. ^^

/f -> wird benötigt für delims
tokens -> definiert was von interesse ist
delims -> ist das Trennzeichen
dir c:\temp\*.* /b -> gibt das Verzeichnis an das durchsucht wird /b -> einfache Darstellung, ohne Kopfdaten und Zusammenfassung

was verbirgt sich nun hinter %%a und %%b ? -> Token 1 und Token 2

Unter Machwas: muss dann das rein was Driver78 machen will, also das kopieren der richtigen Datei.

Also könnte er statt *.* seinen Verdächtig Ordner nach *.ppm durchsuchen und mit dem Namen dann seine PNG ins %cd%\PNG kopieren.

VG
Bitte warten ..
Mitglied: bastla
05.01.2011 um 09:51 Uhr
@H41mSh1C0R
Berichtigt wenn ich was falsch schreibe. ^^
Falsch zwar nicht, aber in
%cd%\PNG
ist "%cd%\" schlicht überflüssig ...
@BigWim
Die Aufteilung eines Dateinamens in Namen und Typ nach Deiner Methode setzt aber voraus, dass es im eigentlichen Namensteil keinen Punkt geben darf (und hinsichtlich der Variablenübergabe an das Unterprogramm auch kein Leerzeichen) - daher wäre die Schreibweise
for %%a in (c:\temp\*.ppm) do call :machwas "%%~na" %%~xa
sicherer (mehr dazu am Ende der Hilfe mit "for /?") ...
Gerade in diesem Fall hier (wo nur der gesamte Name der Datei ohne weitere Bearbeitung benötigt wird) würde ich übrigens auf das Unterprogramm verzichten und (für die ursprüngliche Problemstellung) etwa folgende ungetestete Zeile verwenden:
for %%a in (verdaechtig\*.ppm) do move "%%~na.png" PNG\ 2>nul
Wie oben schon angeführt, ist die Verwendung von %cd% unnötig, da ja defaultmäßig das aktuelle Verzeichnis verwendet wird.

Soferne der Batch mehrmals ausgeführt wird, gibt es vermutlich viele zugehörige ".png"-Dateien nicht mehr, da sie bereits vorher verschoben wurden - daher wird mit "2>nul" die daraus resultierende Fehlermeldung einfach unterdrückt. Sauberer wäre natürlich die Schreibweise
for %%a in (verdaechtig\*.ppm) do if exist "%%~na.png" move "%%~na.png" PNG\
Grüße
bastla
Bitte warten ..
Mitglied: Driver78
05.01.2011 um 13:08 Uhr
So,

Verstehen tue ich zur Zeit nur die Hälfte........(wenn das mal hingeht)

Also der Dateiname bleibt immer gleich, lediglich die Nummerierung ändert sich in dem Bereich: pb000001 - pb005000

Und die Batch Bearbeitet im Moment halt in der Reihenfolge:

1. Screenshots runterladen vom Server
2. Screenshots die kleiner sind wie 8000Bytes löschen
3. Umwandeln in PPM, damit dann
4. das Programm die Bilder aussortieren kann, die Bilder liegen im Hauptordner nun als PNG und PPM vor
5. JETZT sollte er halt aufgrund der aussortierten Bilder, die gleichen Dateinamen halt als PNG in einen anderen Ordner Verschieben
5. Zur Zeit verschiebe ich nur mit Move /y *.pmg [Zielort] (da ich aber die PNG weiterverarbeiten möchte, würde ich gerne die Verschieben)
6. löschen der übrigen Bilder

Was ich nun genau nicht verstehe ist wie ich an einen for Befehl dran gehen muss.

%%a <-- Was will ich damit sagen?

in (verdaechtig\*.ppm) <-- im Ordner verdächtig

do move <-- Verschiebe

"%%~na.png" PNG\ <-- ???
Bitte warten ..
Mitglied: bastla
05.01.2011 um 13:15 Uhr
Hallo Driver78!

Frage bitte nochmals, wenn Du das von H41mSh1C0R oben verlinkte Tutorial bzw zumindest die Ausgabe von "for /?" gelesen hast ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
05.01.2011 um 13:28 Uhr
Moin Driver78,

Zitat von bastla:
Frage bitte nochmals, wenn Du das von H41mSh1C0R oben verlinkte Tutorial
bzw zumindest die Ausgabe von "for /?" gelesen hast ...
...und zur Klarstellung: das "wenn ..du gelesen hast" in bastlas Empfehlung ist gemeint als "nachdem du", nicht etwa als "falls du..".

Grüße
Biber
Bitte warten ..
Mitglied: Driver78
05.01.2011 um 13:50 Uhr
^^

Ich habe mir das Tutorial Ausgedruckt und werde mir es zu gemüte führen.............melde mich dann später nochmal!

So, nach einwenig reinlesen hat es nun funktioniert!

Bastla, hast natürlich recht gehabt mit Deiner Zeile:

01.
for %%a in (verdaechtig\*.ppm) do if exist "%%~na.png" move "%%~na.png" PNG\


mein Fehler beim Probieren war halt das ich es Direkt in die Kommandozeile eingefügt habe und es nicht als Batch ausgeführt habe! Darauf hin bekam ich natürlich folgende Fehlermeldung angezeigt:

"%%a" kann syntaktisch an dieser Stelle nicht verarbeitet werden.


nachdem ich es dann mit nur Prozent Zeichen eingefügt habe konnte ich es testen und in der Batch gehören natürlich zwei %%!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Dateien kopieren die nicht mehr verändert werden? (10)

Frage von pbelcl zum Thema Batch & Shell ...

Windows Server
gelöst Administrator kann auf Server keine EXE-Dateien kopieren, löschen, anlegen (5)

Frage von Winfried-HH zum Thema Windows Server ...

Batch & Shell
Nur aktuelle Dateien kopieren (3)

Frage von icke.hausen zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...