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

Batch-Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: Max-der-Grosse

Max-der-Grosse (Level 1) - Jetzt verbinden

30.11.2004, aktualisiert 20.12.2004, 56427 Aufrufe, 13 Kommentare

Ich habe das Problem demnächst über 2000 Dateien zuordnen zu müssen...

Diese Dateien haben alle den gleichen Dateityp (*.tif). Sie ändern sich nur im Namen.
Nun möchte ich gerne eine Batchdatei erstellen, die mir alle Daten in vorher erstellte Ordner quasi hineinsortiert.
Bsp.:

a.tif in Verzeichnis/OrdnerA
b.tif in Verzeichnis/OrdnerB

Hätte da jemand einen Ansatz bzw. Idee?
Ich muss dazu sagen, dass ich noch nie eine Batch erstellt habe.


Grüße Max
Mitglied: meto
30.11.2004 um 16:00 Uhr
Hallo!
Also ich verstehe zwar, dass du versuchen willst bestimmte Dateien in einen bestimmten Ordner zu kopieren. Ich verstehe aber noch nicht so richtig an welchem Parametern du das festmachen möchtest.

Soll die Datei test.tif ind den Order Verzeichnis\test und die Datei probe.tif in den Ordner Verzeichnis\probe oder wie soll der Rechner erkennen Welche Datei wohin soll?

Ein Anhaltspunkt zur genauen Zuornungsweise währe schon sehr Hilfreich.

Gruß
Ronny
Bitte warten ..
Mitglied: Max-der-Grosse
30.11.2004 um 16:08 Uhr
Als Vorlage:

5906gef.tif -->in den Ordner "GEF"
5906gks.tif -->in den Ordner "GKS"
5906grs.tif -->in den Ordner "GRS"

Auszumachen nur an den letzten drei Buchstaben vor .tif.

Anhand dieser Parameter soll der rechner die erkennung vornehmen.

Gruß Maxe
Bitte warten ..
Mitglied: 6741
30.11.2004 um 16:09 Uhr
Hi,

hier die Lösung:


move c:\ordner_alle\a*.* C:\Ordner_a\
move c:\ordner_alle\b*.* C:\Ordner_b\

ab in den editor und als move.bat in das Verzeichniss deiner Wahl speichern.

Immer wenn du es über den task startest, copiert es die Dateien in die Verzeichnisse.
Bitte warten ..
Mitglied: 6741
30.11.2004 um 16:11 Uhr
wo du den stern setzt ist egal, ob vor dem a oder danach.

also es klappt bei mir suuuuuper !!!
Bitte warten ..
Mitglied: Max-der-Grosse
30.11.2004 um 16:13 Uhr
Ich probiers gleich mal aus.
Ich geb Dir dann noch feedback.

Bis denne
Bitte warten ..
Mitglied: meto
30.11.2004 um 16:17 Uhr
Ich vermute jetzt mal, dass du die Ordner auch nicht von Hand anlegen möchtest, sonder dass die sich auch von "alleine" erstellen sollen.
Um wieviele unterschiedliche Ordner würde es sich dann handeln? Es bestünde die Möglichkeit deine Kürzel (z. B. "gef") nacheinander, getrennt durch einen Absatz in eine Textdatei zu schreiben und die dann mit der Batschdatei abzuarbeiten. Wenn das aber zuviele sind bleibt dir nur VBScripting.
Bitte warten ..
Mitglied: Max-der-Grosse
30.11.2004 um 16:56 Uhr
Also es klappt einfach super. Danke schön.

Neues Problem:

Da das ja nun 2000 Daten sind und das Batch-File nicht zu groß geraten soll, muss eine Variable rein, in der der Pfad abgespeichert werden soll. Also dass ich den Pfadnamen nur einmal bzw. zweimal eingeben muss. (Quelle --> Ziel)

Grüße Max
Bitte warten ..
Mitglied: fritzo
30.11.2004 um 23:05 Uhr
@echo off

set alle=c:\temp\ordner_alle
set gef=c:\temp\gef\
set gks=c:\temp\gks\
set grs=c:\temp\grs\

move %alle%\*gef.tif %gef%
move %alle%\*gks.tif %gks%
move %alle%\*grs.tif %grs%

@echo isch abe fertisch
Bitte warten ..
Mitglied: Max-der-Grosse
01.12.2004 um 10:35 Uhr
Vielen Dank!!
Ich habe es etwas anders gemacht.

Hier mein Batch:
@ECHO OFF
set x=C:\Dokumente und Einstellungen\max\Desktop\MASFG_Geodaten\
set y=C:\TESTMAFG\

echo %x%
echo %y%

echo Jetzt gehts los bei Knopfdruck
echo TK 100 Dateien werden in das entsprechende Verzeichnis kopiert
Pause

echo TK 100 Dateien werden in das entsprechende Verzeichnis kopiert

move "%x%c*gef.*" "%y%GEF"
move "%x%c*grs.*" "%y%GRS"
move "%x%c*gks.*" "%y%GKS"
move "%x%c*iso.*" "%y%ISO"
move "%x%c*wad.*" "%y%WAD"
move "%x%c*str.*" "%y%STR"
move "%x%c*veg.*" "%y%VEG"
move "%x%c*stg.*" "%y%STG"
move "%x%c*pp.*" "%y%"

echo TK 50 Dateien werden in das entsprechende Verzeichnis kopiert
Pause


move "%x%l*gef.*" "%y%GEF"
move "%x%l*grs.*" "%y%GRS"
move "%x%l*gks.*" "%y%GKS"
move "%x%l*iso.*" "%y%ISO"
move "%x%l*wad.*" "%y%WAD"
move "%x%l*str.*" "%y%STR"
move "%x%l*veg.*" "%y%VEG"
move "%x%l*stg.*" "%y%STG"
move "%x%l*pp.*" "%y%"

echo TK25 Dateien werden in das entsprechende Verzeichnis kopiert
Pause


move "%x%*gef.*" "%y%GEF"
move "%x%*grs.*" "%y%GRS"
move "%x%*gks.*" "%y%GKS"
move "%x%*iso.*" "%y%ISO"
move "%x%*wad.*" "%y%WAD"
move "%x%*pp.*" "%y%"

@ECHO De Döner is fetisch

Also das geht super. Vorschläge für eventuelle Verkürzungen nehme ich gerne entgegen.
Falls ihr Euch wundert, warum im Dateinamen noch l*gks.* oder c*gks.* steht, dann liegt das an der erkennung der Karten. c steht für TK100, l für TK50 und nichts für TK25.

Auf jeden Fall vielen Dank für die schnelle Hilfe.

Grüße Max
Bitte warten ..
Mitglied: 4263
19.12.2004 um 22:00 Uhr
hi firewalldevil!

also, bei mir geht nicht... ich habe einen ordner "alle" in c:\ angelegt, also: c:\alle
dort hinein habe ich die dateien "abc123", "abc456" und "abc789" gepackt, alles *.txt-dateien.

jetzt will ich die in veschiedene ordner packen, ähnlich wie max_der_grosse. also "abc123" soll in den ordner "123", "abc456" soll in den ordner "456", etc. alle diese ordner sollen in c:\gespeichert sein, also zb c:\123.

meine batch-datei sieht nun so aus:

move c:\alle\*123.* c:\123
move c:\alle\*456.* c:\456
move c:\alle\*789.* c:\789

was ist falsch? ich habe auch schon alles mit einem \ nach dem zielverzeichniss versucht, er macht mir trozdem keine ordner, sondern nur "dateien"... naja, er erkennt nicht einmal was es für ein dateityp ist. es sind dann einfach nichterkannte dateien in c:\
wieso hast du nach dem dateinamen in deinem bsp .* angegeben? muss man da in meinem fall .txt eingeben??

was habe ich falsch gemacht??

greets racer2004
Bitte warten ..
Mitglied: fritzo
20.12.2004 um 06:21 Uhr
Hi,

also ich hab das mal nachgestellt und bei mir funktioniert es einwandfrei (Windows XP Pro). Was hast Du für ein System und was für eine Version von move?

Ruf mal "move /?" auf und schau Dir noch mal die Syntax an (obwohl - die von Dir gelisteten Befehle funktionieren hier ohne Probleme).

move wird nicht nur zum Verschieben, sondern auch zum Umbenennen von Files verwendet; evtl. mal in die Richtung suchen?

Grüße,
fritzo
Bitte warten ..
Mitglied: 4263
20.12.2004 um 11:54 Uhr
hallo fritzo,

also, ich habe (leider) win XP home...

und was meinst du mit der version von move?? also, es kommt ja nicht wirklich darauf an, unter welchem namen man die batchdatei speichert!?

ja, ich werde da mal einwenig schauen. was ich noch fragen wollte: geht das ganze auch mit copy? also, dass es einfach kopiert und nicht verschiebt/umbenennt?

greets racer2004
Bitte warten ..
Mitglied: Max-der-Grosse
20.12.2004 um 12:05 Uhr
Hallo Racer.

ich poste hier mal meine komplette Batch.
Natürlich habe ich Verzeichnisse erst angelegt:
@ECHO OFF

echo Ordner TK100 wird eingelesen...

set a= tk100

echo Ordner TK50 wird eingelesen...

set b= tk50

echo Ordner TK25 wir eingelesen...

set c= tk25


cd %c%
ECHO Verzeichnisse für den Ordner TK25 werden angelegt...

MKDIR gef
MKDIR gek
MKDIR gew
MKDIR gks
MKDIR grs
MKDIR iso
MKDIR wad
cd..

cd %b%
ECHO Verzeichnisse für den Ordner TK50 werden angelegt...

MKDIR gar
MKDIR gef
MKDIR gek
MKDIR gks
MKDIR grs
MKDIR iso
MKDIR stg
MKDIR str
MKDIR veg
MKDIR wad
cd..

cd %a%
ECHO Verzeichnisse für den Ordner TK100 werden angelegt...
MKDIR gef
MKDIR gek
MKDIR ges
MKDIR gew
MKDIR gks
MKDIR grs
MKDIR gru
MKDIR iso
MKDIR sch
MKDIR stg
MKDIR str
MKDIR veg
MKDIR wad
cd..

echo Verzeichnisse wurden erfolgreich angelegt...
Pause

REM Quelle/Ziel TK100
set v= E:\Geodaten\masfg\lvermgeo_raster_gesamt\tk100\
set w= E:\Geodaten\masfg\lvermgeo_raster_gesamt\tk100\

REM Quelle/Ziel TK50
set x= E:\Geodaten\masfg\lvermgeo_raster_gesamt\tk50\
set y= E:\Geodaten\masfg\lvermgeo_raster_gesamt\tk50\

REM Quelle/Ziel TK25
set u= E:\Geodaten\masfg\lvermgeo_raster_gesamt\tk25\
set z= E:\Geodaten\masfg\lvermgeo_raster_gesamt\tk25\


echo Jetzt gehts los bei Knopfdruck...
echo TK 100 Dateien werden in das entsprechende Verzeichnis kopiert...
Pause

echo TK 100 Dateien werden in das entsprechende Verzeichnis kopiert...
echo %v%c*gef.* %w%gef


move %v%c*gef.* %w%gef
move %v%c*gek.* %w%gek
move %v%c*ges.* %w%ges
move %v%c*gew.* %w%gew
move %v%c*gks.* %w%gks
move %v%c*grs.* %w%grs
move %v%c*gru.* %w%gru
move %v%c*iso.* %w%iso
move %v%c*sch.* %w%sch
move %v%c*stg.* %w%stg
move %v%c*str.* %w%str
move %v%c*veg.* %w%veg
move %v%c*wad.* %w%wad
move %v%c*pp.* %w%

echo TK 50 Dateien werden in das entsprechende Verzeichnis kopiert...
Pause

move %x%l*gar.* %y%gar
move %x%l*gef.* %y%gef
move %x%l*gek.* %y%gek
move %x%l*grs.* %y%grs
move %x%l*gks.* %y%gks
move %x%l*iso.* %y%iso
move %x%l*wad.* %y%wad
move %x%l*str.* %y%str
move %x%l*veg.* %y%veg
move %x%l*stg.* %y%stg
move %x%l*pp.* %y%

echo TK25 Dateien werden in das entsprechende Verzeichnis kopiert...
Pause
move %u%*gef.* %z%gef
move %u%*gek.* %z%gek
move %u%*gew.* %z%gew
move %u%*grs.* %z%grs
move %u%*gks.* %z%gks
move %u%*iso.* %z%iso
move %u%*wad.* %z%wad
move %u%*pp.* %z%

@ECHO Kacheln wurden erfolgreich verschoben


Du kannst auch versuchen die Pfade jeweils in Anführungszeichen zu setzen.

Bsp.: move "c:\alle\*123.*" "c:\123"


Gruß Der Große
Bitte warten ..
Neuester Wissensbeitrag
Batch & Shell

Batch Script Editor - Programmvorstellung des Entwicklers

(8)

Tipp von wowItsDoge zum Thema Batch & Shell ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch-Skript: Messdaten in Textdatei finden und in eine neue Datei schreiben (5)

Frage von habmalnefrage zum Thema Batch & Shell ...

Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Basic
Mit Visual Basic Batch Datei öffnen (14)

Frage von Flodsche zum Thema Basic ...

Heiß diskutierte Inhalte
Windows Server
Anmeldung an neuen Windows Domäne Client nicht möglich (11)

Frage von FlorianN zum Thema Windows Server ...

Batch & Shell
gelöst PowerShell Transpose Objects und Memoryleak (11)

Frage von agowa338 zum Thema Batch & Shell ...

Exchange Server
MX Eintrag für Exchange-Server , habe aber nur feste IP (9)

Frage von Mausbiber zum Thema Exchange Server ...

Netzwerkprotokolle
Kurze Frage: AnyConnect woher beziehen? (8)

Frage von PharIT zum Thema Netzwerkprotokolle ...