partagas
Goto Top

Mit einer Batch Datei kopieren von Datei in Verzeichniss das in .txt aufgelistet ist

Hallo User und Admins,

hier mein Vorhaben:

Ich habe 150 Disketten (ja das meine ich ernst...) zu archivieren. Und das mehrmals die Woche.
Die Disketten Inhalte (jeweils eine Archivierung eines Roboters) sollte nun auf die Festplatte kopiert werden.
Am besten in einen Ordner mit dem heutigen Datum.

Ich möchte nun nicht bei jedem Disketten wechsel den Ziel Ordner leeren (sonst überschreibt es den Inhalt ja)
Also gibt es zwei möglichkeiten:

1. ) Auf der Diskette, in einer bestimmten Datei ist der Robotername hinterlegt. (Die optimale Lösung)

---> Ich müßte nun also nach einer immer gleichen Textstelle in dieser Datei suchen und daraus
einen Ordner (C:\"Heutigesdatum\Robotername\ ") erstellen in das ich den kompletten Disketteninhalt kopiere.

2. ) Aus einer Liste (.txt) die Roboternamen auslesen, der Reihe nach also aufsteigend.
Anschliessend einen Ordner (wieder in einem Ordner mit heutigem Datum) mit dem Roboternamen erstellen und
den Disketten Inhalt hinein kopieren...

Das mit dem heutigen Datum kann ich schon aber das - suchen - bennen - hinein kopieren - nicht =(

Kann mir einer helfen?

Dominik

Content-Key: 99401

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

Printed on: April 19, 2024 at 23:04 o'clock

Member: bastla
bastla Oct 15, 2008 at 22:14:01 (UTC)
Goto Top
Hallo Partagas und willkommen im Forum!

Kannst Du bitte die Information zur Möglichkeit 1 konkretisieren: Woran ist die Zeile mit dem Roboternamen zu erkennen, wie ist sie aufgebaut?

Grüße
bastla
Member: Partagas
Partagas Oct 15, 2008 at 22:29:40 (UTC)
Goto Top
; KUKA Roboter GmbH
; May 20, 1999
; Archive settings for KR C1 V2.3
;__________________________________________________________________________

Source1 = \\S050A143\M050VB5601R10\Archive_Autom\Mada\* <-----------------

Hier ist M050 der Indikator für den Folgenden Roboternamen VB56 und 01R10

Der Dateinamen lautet ----> A:\INIT\Archive

Hilft dir das?
Member: bastla
bastla Oct 15, 2008 at 22:41:00 (UTC)
Goto Top
Hallo Partagas!

Hilft dir das?
Soferne die Position immer gleich bleibt (Stelle 22 oder nach dem insgesamt dritten "\"): ja.
Im ersten Fall etwa so:
@echo off & setlocal
for /f "delims=" %%i in ('findstr "M050" "A:\INIT\Archive"') do set "Roboter=%%i"  
set Roboter=%Roboter:~25,9%
echo %Roboter%
oder
@echo off & setlocal
for /f "tokens=3 delims=\" %%i in ('findstr "M050" "A:\INIT\Archive"') do set "Roboter=%%i"  
set Roboter=%Roboter:~4%
echo %Roboter%
Grüße
bastla
Member: Partagas
Partagas Oct 15, 2008 at 22:50:18 (UTC)
Goto Top
Hallo nochmal.

Ich glaube du hast mich falsch verstanden.

An der Kennung "M050" kann ich lediglich erkennen das DARAUF der Robotername folgt (in dem Beispiel "VB5601R10)
Hier nochmal die Zeile der Datei:
Source1 = \\S050A143\M050VB5601R10\Archive_Autom\Mada\* <-----------------

Das ganze suchen und, Namen rauskopieren, muss aus der Datei " A:\INIT\Archive" gemacht werden...

Und ein Ordner erstellt werden aus dem Roboternamen, inden das komplette Verzeichniss "A:" hinein kopiert wird

Verstehst du wie ich meine?

Gruß und gute Nacht

Dominik
Member: bastla
bastla Oct 15, 2008 at 23:01:14 (UTC)
Goto Top
Hallo Partagas!

Und Du hast meinen Ansatz bereits getestet?

Abgesehen davon: Könntest Du bestätigen, dass entweder die absolute Position in der Zeile (ab Zeichen 22) oder die Position nach dem dritten "\" als Anhaltspunkt für den String "M050VB5601R10" dienen kann (und die Länge des Roboternamens mit 9 Zeichen fixiert ist)?

Sobald feststeht, dass der Robotername richtig extrahiert wird, kann die Zeile
xcopy /e A:\ "C:\%Heute%\%Roboter%\"
hinzugefügt werden. Das heutige Datum muss natürlich bereits in %Heute% enthalten sein, zB durch:
set Heute=%date:~-4%-%date:~-7,2%-%date:~-10,2%
Grüße
bastla
Member: Partagas
Partagas Oct 15, 2008 at 23:11:31 (UTC)
Goto Top
Ich versuche dir morgen die nötigen Infos zu besorgen.

Danke schonmal, bis morgen

PS: Das mit dem dritten /// stimmt nicht ganz, da dad "M050" nicht zum namen gehört sondern nur das
"VB5601R10"
Member: bastla
bastla Oct 15, 2008 at 23:41:35 (UTC)
Goto Top
Hallo Partagas!

Würdest Du bitte meine Fragen so beantworten, wie ich sie stelle, konkret also bezogen auf die
... Position nach dem dritten "\" als Anhaltspunkt für den String "M050VB5601R10"

Und ja, es ist vergleichsweise spät, aber ich habe trotzdem begriffen, dass "M050" nicht Namensbestandteil ist - hast Du gelesen, dass ich nach der Länge (immer 9 Zeichen?) des Namens gefragt habe, und magst Du vielleicht dazu etwas schreiben?

Grüße
bastla
Member: Partagas
Partagas Oct 27, 2008 at 08:06:46 (UTC)
Goto Top
Ja Basta, hab ich gelesen...

Der Namen ist immer 9 Zeichen Lang, da ist der Daimler ziemlich konsequent =)

Und es folgt immer nach dem dritten "\" das "M050"...

Brauchst du sonst noch irgendwelche Infos?

Dominik
Member: bastla
bastla Oct 27, 2008 at 08:45:35 (UTC)
Goto Top
Hallo Partagas!

Brauchst du sonst noch irgendwelche Infos?
Eigentlich nur, wie die Tests mit den beiden Batches von oben gelaufen sind ... face-wink

Grüße
bastla
Member: Partagas
Partagas Oct 29, 2008 at 12:40:22 (UTC)
Goto Top
WUNDERBAR!!!

Der String:

01.@echo off & setlocal
02.for /f "tokens=3 delims=\" %%i in ('findstr "M050" "A:\INIT\Archive"') do set "Roboter=%%i"
03.set Roboter=%Roboter:~4%
04.echo %Roboter%

Funktioniert Perfekt....

Nur eine Kleinigkeit wäre noch :-O

Kann ich irgendwie einen Unterstrich einfügen?

Er liest den Teil aus der Datei aus ("VB5601R10")
und sollte den Unterordner jetzt aber VB56_01R10 nennen...

Das wäre die Krönung!

Danke Bastla