Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Batch-Datei schreiben

Mitglied: Max-der-Grosse

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. :-( face-sad


Grüße Max

Content-Key: 4096

Url: https://administrator.de/contentid/4096

Ausgedruckt am: 21.06.2021 um 12:06 Uhr

13 Kommentare
Mitglied: meto
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
Mitglied: Max-der-Grosse
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
Mitglied: 6741
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.
Mitglied: 6741
wo du den stern setzt ist egal, ob vor dem a oder danach.

also es klappt bei mir suuuuuper !!!
Mitglied: Max-der-Grosse
Ich probiers gleich mal aus.
Ich geb Dir dann noch feedback.

Bis denne
Mitglied: meto
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.
Mitglied: Max-der-Grosse
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
Mitglied: fritzo
@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
Mitglied: Max-der-Grosse
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
Mitglied: 4263
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
Mitglied: fritzo
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
Mitglied: 4263
hallo fritzo,

also, ich habe (leider) win XP home... :-( face-sad

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
Mitglied: Max-der-Grosse
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
Heiß diskutierte Beiträge
Router & Routing
Deutsche Glasfaser. NT direkt an pfSense möglich oder besser Kaskade?
fnbaluVor 1 TagFrageRouter & Routing23 Kommentare

Hallo zusammen, am kommenden Mittwoch wird bei mir der Deutsche Glasfaser Anschluss aktiviert. Anfangs wird darüber kein Telefon laufen, aber vielleicht später. Mir stellt sich ...

Notebook & Zubehör
Alt-Laptop Vergleichsmeinungen
winlinVor 1 TagFrageNotebook & Zubehör12 Kommentare

Hallo zusammen Habe zwei Laptops und einen mini pc und würde gerne wissen was ihr zu den beiden Laptops sagt??? Was dürfte ich Max an ...

Batch & Shell
Problem mit einer Batchdatei
stevie72Vor 1 TagFrageBatch & Shell11 Kommentare

Guten Abend zusammen! Ich habe ein problem eine Batch ans laufen zu bekommen. Folgende Problem Stellung: Wir haben etwa 20 Rechner in der Bibliothek. Darauf ...

Virtualisierung
Adobe Flash Player für Zugriff auf VMWare Horizon
Moenchengladbacher-ITVor 1 TagFrageVirtualisierung17 Kommentare

Liebes Support Team, unser Kunde verwendet eine "VMWare Horizon" Applikation, von dem aus Anwendungen/Browser/etc in einer virtuellen Sandbox gestartet werden. Alle Clients haben kein Zugriff ...

Firewall
OpenVPN-Problem
gelöst ingorosVor 19 StundenFrageFirewall20 Kommentare

Hallo, habe gestern mit ipfire einen OpenVPN-Server aufgesetzt. Der läuft auch wunderbar. Sowohl Win7, wie auch Win10pro können sich problemlos anmelden. Ein Laptop mit Win10 ...

Windows 10
Remotedesktopzugang mit Openvpn sicher?
LegofrauVor 1 TagFrageWindows 108 Kommentare

Guten Morgen, wie sicher ist es wenn man Remotedesktopzugang durch einen Openvpn Tunnel betreibt? Der Openvpn Tunnel ist mit aktuellen Zertifikaten abgesichert. Der Pc hat ...

Windows Server
AD Replikation zwischen Standorten schlägt fehl nach Level auf 2008R2
diematrix125Vor 21 StundenFrageWindows Server14 Kommentare

Hallo zusammen, ich habe ein (mittelschweres?) Problem mit dem AD. Ausgangssituation: Standort A: 3 DCs unter Win 2008R2 Standort B: 1 DC unter Win 2008R2 ...

Windows 10
Win 10 Fehler 0xc000000e und bootmbr fehlt
dressaVor 23 StundenFrageWindows 1010 Kommentare

Hallo miteinander. Ein guter Kollege von mir kam auf mich zu weil sein PC mit wichtigen Daten nicht mehr läuft. Er hatte laut seinen Aussagen ...