Top-Themen

Aktuelle Themen (A bis Z)

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 Batch zum Orden von Dateien in die jeweiligen Ordner!

Mitglied: Tiff0588

Tiff0588 (Level 1) - Jetzt verbinden

19.06.2014, aktualisiert 16:15 Uhr, 2162 Aufrufe, 17 Kommentare

Hallo Leute,

ich schreibe gerade an meiner Masterarbeit und arbeite mit einer Menge RAW und TIFF Dateien. Diese liegen wie folgt in einem Ordner (aber auch getrennt in einzelnen Ordner möglich) vor:

TTC00078
TTC00079
TTC00080
TTC00081
...
TTC10078
TTC10079
TTC10080
TTC10081
...
TTC20078
TTC20079
TTC20080
TTC20081
...
TTC30078
TTC30079
TTC30080
TTC30081
...
TTC40078
TTC40079
TTC40080
TTC40081
...
TTC50078
TTC50079
TTC50080
TTC50081

Nun möchte ich aber alle z.B: 78 Dateien in einem Ordner haben und alle 79 in einem Ordner und so weiter.
Das sähe dann so aus:

TTC00078
TTC10078
TTC20078
TTC30078
TTC40078
TTC50078 in einem Ordner und das mit 79, 80 u.s.w.

ich habe leider keine Ahnung von der Materie und auch nicht die Zeit alles manuell in einzelne Ordner zu verschieben. Vielleicht hättet ihr den für mich passenden Quellcode. Ich könnte garnicht sagen, wie dankbar ich euch wäre. Und sry, dass ich euch nach so einem Mist frage.

LG
Mitglied: emeriks
19.06.2014, aktualisiert um 15:48 Uhr
Hi,
wenn die Dateinamen immer die selbe feste Länge haben, dann kanst Du beim MOVE mit Wildcards arbeiten, hier z.B. "??????78" und "??????79" usw.
Die Zahlen kannst Du mit verschachtelten For-Schleifen genrieren.

Bsp. Batch

01.
@echo off 
02.
For %%z in (0 1 2 3 4 5 6 7 8 9) Do For %%e in (0 1 2 3 4 5 6 7 8 9) Do md %%z%%e && move ??????%%z%%e.* %%z%%e
E.
Bitte warten ..
Mitglied: Tiff0588
19.06.2014, aktualisiert um 16:07 Uhr
Hi,

also ich habe keine Ahnung von der Syntax und kann damit leider nichts anfangen. Sry. Die rausgesuchten Dateien müssten auch in einen automatisch angelegten Ordner für den Dateien-Block verschoben werden, da ich sonst ja 500 Ordner selber erstellen muss. Vielleicht geht es auch mit einem Windows-Skript oder so.

LG
Bitte warten ..
Mitglied: emeriks
19.06.2014 um 16:50 Uhr
Äh, eine Batch ist ein "Windows-Skript". So zu sagen. Es läuft auch unter Windows.

Die von mir genannten Zeilen erstellen Ordner von 00 bis 99 und verschieben die Dateien entsprechend. Man kann das auch für 000-499 oder 999 anpassen.

1. Erstelle mit Notepad eine Datei im selben Ordner, in welchem die Bilder sind. Beliebiger Name, aber Dateiendung ".cmd" (nicht .cmd.txt !) (und auch nicht mit Ziffern am Ende ), z.B. MoveFiles.cmd
2. Kopiere den u.g. Code rein und speicher die Datei erneut.
3. starte cmd.exe, gehe auf das Laufwerk und wechsle in den Ordner mit den Bildern.
4. starte die eben erstellte batch

Diese erstellt jetzt Ordner von 000 bis 999 und verschiebt die Dateien entsprechend.

01.
@echo off 
02.
For %%h in (0 1 2 3 4 5 6 7 8 9) Do For %%z in (0 1 2 3 4 5 6 7 8 9) Do For %%e in (0 1 2 3 4 5 6 7 8 9) Do md %%h%%z%%e && move ?????%%h%%z%%e.* %%h%%z%%e
E.
Bitte warten ..
Mitglied: Tiff0588
20.06.2014, aktualisiert um 11:37 Uhr
Hi,
vielen Dank für deine Antwort. Hat super funktioniert. Ich kann dir gar nicht genug danken, super Forum hier :D

LG
Bitte warten ..
Mitglied: emeriks
20.06.2014 um 11:40 Uhr
Bei mir funktioniert der Code. Habe es eben nochmal getestet.

Diese Meldung "Dateiname existiert bereits, oder die Datei konnte nicht gefunden werden" kannste ignorieren. Sie kommt von den vielen Mustern, welches es noch nciht gibt. Wemm es z.B. noch keine Dateien mit xxxxx999 gibt, dann wird es bei 999 eben meckern.

Ich habe den Code nochnmal angepasst. Jetzt werden die Ordner gar bloß erstellt, wenn entsprechende Dateien vorhanden sind.
Immer vorausgesetzt, dass die Dateinamen 8 Zeichen lang sind (plus Endung), wie in Deiner Anfrage dargestellt.

01.
@echo off 
02.
For %%h in (0 1 2 3 4 5 6 7 8 9) Do For %%z in (0 1 2 3 4 5 6 7 8 9) Do For %%e in (0 1 2 3 4 5 6 7 8 9) Do if exist ?????%%h%%z%%e.* (md %%h%%z%%e && move ?????%%h%%z%%e.* %%h%%z%%e)
E.
Bitte warten ..
Mitglied: Tiff0588
20.06.2014 um 11:48 Uhr
Vielen Dank, hat doch super funktioniert, nun hab ich die Funktion "gdal_merge" womit ich alle Tiffs in einem Ordner zu einer gestackten Datei verbinden kann, mit dem Programm OSGeo4W Shell von QuantumGIS. Ist es möglich die einzelnen Ordner zu durchlaufen und die Funktion für die Dateien auszuführen und die entstandene Datei in dem jeweiligen Ordner zu speichern?

LG
Bitte warten ..
Mitglied: bastla
20.06.2014 um 17:39 Uhr
Hallo Tiff0588 und willkommen im Forum!

Eine Schleife über alle Unterordner eines Ordners kannst Du einfach nach folgendem Schema erzeugen:
01.
for /d %%i in ("D:\Ordner mit den Unterordnern\*") do ( 
02.
    pushd "%%i" 
03.
    echo Programm wird gestartet in %%i 
04.
    popd 
05.
)
Anstelle der Ausgabe in Zeile 3 wäre dann der von Dir nicht näher beschriebene Aufruf des Programms "OSGeo4W Shell" durchzuführen, wobei durch das "push" vorweg in den jeweiligen Ordner gewechselt wird, sodass Du keine Pfadangabe für die Quell- und Zieldateien benötigst ...

Grüße
bastla
Bitte warten ..
Mitglied: Tiff0588
30.06.2014 um 17:43 Uhr
He Leute,
ich habe es immer noch nicht geschafft. Ich habe folgenden Code:

@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET mypath=D:\test\

FOR /F %%i IN ('DIR /B %mypath%*/S *.tif') DO (

SET infile=%%i

gdal_merge -o Stacked.img -of HFA -separate %mypath%!infile! Beschreibung der gdal_merge: http:www.gdal.org/gdal_merge.html

)

wenn ich das mit OSGeo4W Shell ausführe, bekomme ich die Fehlermeldung IndexError: list index out of range

Ich will das der im Verzeichnis D:\test alle Unterordner durchläuft und für alle Dateien mit der Endung .tif die Funktion gdal_merge ausführt, die für jeden Ordner in dem jeweiligen eine Datei Stacked.img anlegen soll.

Könnt ihr mir evtl. da weiterhelfen. Der Code von BASTLA hat leider nicht funktioniert

LG
Bitte warten ..
Mitglied: bastla
30.06.2014 um 21:55 Uhr
Hallo Tiff0588!

Versuch mal
01.
@echo off & setlocal 
02.
set "mypath=D:\test" 
03.
 
04.
for /d %%i in ("%mypath%\*") do ( 
05.
    pushd "%%i" 
06.
    for %%a in (*.tif) do gdal_merge -o Stacked.img -of HFA -separate "%%a" 
07.
    popd 
08.
)
Grüße
bastla
Bitte warten ..
Mitglied: Tiff0588
01.07.2014 um 14:02 Uhr
vielen Dank für die Antwort. Jetzt geht er in die einzelnen Ordner und führt die Funktion anscheinend für jedes Tiff aus. Aber es sollen die 5 Dateien

(z.B. TTC0123_0R
TTC0123_2R
TTC0123_3R
TTC0123_4R
TTC0123_5R)

als Input verwendet werden, also praktisch gdal_merge -o Stacked.img -of HFA -separate HIER die 5 Tiffs
Bitte warten ..
Mitglied: bastla
01.07.2014 um 14:29 Uhr
Hallo Tiff0588!

Na dann eben etwas in der Art (ungetestet):
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "mypath=D:\test" 
03.
 
04.
for /d %%i in ("%mypath%\*") do ( 
05.
    pushd "%%i" 
06.
    set "files=" 
07.
    for /f "delims=" %%a in ('dir /b/on *.tif') do set "files=!files! %%a" 
08.
    gdal_merge -o Stacked.img -of HFA -separate !files! 
09.
    popd 
10.
)
Grüße
bastla
Bitte warten ..
Mitglied: Tiff0588
01.07.2014 um 14:48 Uhr
He,
Danke, geht aber immer nur für den ersten Ordner mit den 5 Tiffs und bring für die anderen Ordner dann die Fehlermeldung
ERROR 4: !files! does not exist in the file system, and is not recognised as a supported dataset name.

LG
Bitte warten ..
Mitglied: bastla
01.07.2014, aktualisiert 02.07.2014
Hallo Tiff0588!

Versuch es zum Testen mit folgender Version:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "mypath=D:\test" 
03.
 
04.
for /d %%i in ("%mypath%\*") do ( 
05.
    pushd "%%i" 
06.
    set "files=" 
07.
    for /f "delims=" %%a in ('dir /b/on *.tif') do set "files=!files! %%a" 
08.
    echo Ordner:  %%i 
09.
    if defined files echo gdal_merge -o Stacked.img -of HFA -separate !files! 
10.
    popd 
11.
)
Du kannst so sehen, wie der Aufruf von "gdal_merge" erfolgen würde (nachdem das echo davor entfernt wurde) - die Verarbeitung wird so auch nur versucht, wenn tatsächlich .tif-Dateien gefunden wurden ...

Grüße
bastla
Bitte warten ..
Mitglied: Tiff0588
01.07.2014 um 15:20 Uhr
He,

hab den Test gemacht und er zeigt mir auch die richtige Funktion an, also
Ordner: D:\test\123
gdal_merge -o Stacked.img -of HFA -separate TTC0123_0R.tif TTC0123_2R.tif TTC0123_3R.tif TTC0123_4R.tif TTC0123_5R.tif

und das auch für die anderen Ordner, also findet er auch alle .tif, aber trotzdem bringt er den selben Fehler ERROR 4

LG
Bitte warten ..
Mitglied: bastla
02.07.2014 um 12:47 Uhr
Hallo Tiff0588!
trotzdem bringt er den selben Fehler ERROR 4
Sorry - woran es dann hakt, kann ich Dir auch nicht sagen ...

Grüße
bastla
Bitte warten ..
Mitglied: Tiff0588
02.07.2014 um 14:48 Uhr
Ok Danke,

mir kam gerade die Idee, dass ich über meine Ordner iteriere, die Tiffs rausgesucht und in eine Liste mit Pfad geschrieben werden.
Code sieht wie folgt aus:

@echo off & setlocal enabledelayedexpansion
set "mypath=D:\test"
for /d %%i in ("%mypath%\*") do (
pushd "%%i"
set "files="
for /f "delims=" %%a in ('dir /b/on *.tif') do set "files=!files! %%a"
echo Ordner: %%i
dir /b /s !files! > list.txt
popd
)

Das hat auch super funktioniert. Jetzt liegt in jedem Ordner eine List.txt mit den Pfaden und dem Namen der 5 Tiffs.
Jetzt wollte ich mit einer anderen batch -Datei wieder über die Ordner iterieren und jeweils die .txt als Input nehmen, was aber wieder nur beim ersten Ordner funktioniert hat. Fehlermeldung ERROR1: unable to open optfiles '!files!' No such file or directory

Code ist:

@echo off & setlocal enabledelayedexpansion
set "mypath=D:\test"
for /d %%i in ("%mypath%\*") do (
pushd "%%i"
set "files="
for /f "delims=" %%a in ('dir /b/on *.txt') do set "files=!files! %%a"
echo Ordner: %%i
if defined files gdal_merge -o Stacked.img -of HFA -separate --optfile !files!
popd
)

Vielleicht könnt ihr mir ihr noch weiterhelfen
Bitte warten ..
Mitglied: Tiff0588
05.07.2014 um 10:02 Uhr
So hab das Problem lösen können.

es musste noch start /B vor die Funktion gdal_merge gesetzt werden und nun funktioniert alles.

Vielen Dank noch mal für eure Hilfe, super Forum hier
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch - Dateien mehrer Ordner kopieren in jeweilige Unterordner

gelöst Frage von mr-neoBatch & Shell7 Kommentare

Hallo zusammen, folgendes Vorhaben möchte ich durchführen. Ich denke, mit einem cmd Befehl bzw. einer *.bat Datei sollte das ...

Batch & Shell

Alle Dateien mit den gleichen Namen via VBS oder Batch in den jeweiligen Ordner kopieren(erstellen)

gelöst Frage von WeezytBatch & Shell5 Kommentare

Moin Leute, ich bräuchte einen Skript (VBS oder Batch), mit der ich einen Ordner für einzelne Dateien erstellen kann. ...

Batch & Shell

Datei im mehrere Order verschieben

gelöst Frage von Mario76Batch & Shell11 Kommentare

Hallo zusammen, ich bin auf der Suche nach einem Batchbefehl, der eine Datei in einen/mehrere Ordner kopieren soll wenn ...

Batch & Shell

Batch: Ordner auf Datei überprüfen

gelöst Frage von donmanolitoBatch & Shell4 Kommentare

Hallo Ich suche eine Möglichkeit alle Ordnernamen eines Verzeichnisses in eine Variable zu schieben um dann per Schleife ein ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 5 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 16 StundenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 16 StundenMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 16 StundenHardware11 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux23 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL18 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

LAN, WAN, Wireless
Kommunikation zwischen verschiedenen IP-Bereichen
Frage von DirkHoLAN, WAN, Wireless13 Kommentare

Hallo zusammen, von Unitymedia habe ich ein neues Modem (Connect Box) erhalten, das u.a. IPv4 aber keinen Bridge Mode ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server13 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...