duke25
Goto Top

Dateinamen kopieren und einfügen, keine Inhaltliche Anpassung und kein Datum notwendig!

Hallo liebe Community,

bin durch Recherchearbeiten hier in diesem Forum gelandet und hab mir auch sehr aufmerksam viele Beiträge durchgelesen. Da ich absoluter Newbie auf dem Gebiet bin und mich auch mit Batchverarbeitungen kaum auskenne hoffe ich hier eine Lösung zu finden.

Falls so ein Thread schon besteht dann bitte ich dies zu entschuldigen aber habe in der DB keinen Beitrag gefunden der genau auf die Problemstellung zutrifft.

Folgendes Szenario:

Angenommen man hat zwei Verzeichnisse: Verzeichnis 1 und Verzeichnis 2. Diese Verzeichnisse beinhalten jeweils 100 Dateien, welche sich von der Dateigröße und Dateinamen unterscheiden.

Wie kann ich in einer Batch Datei darstellen, dass er aus dem Verzeichnis (Verzeichnis 1/Datei1.txt) mir den Namen "datei1" ins Verzeichnis 2/test. txt kopiert? Im Anschluss sollte mein 2. Verzeichnis die selben Dateinamen wie im anderen Verzeichnis besitzen aber es darf definitiv keine inhaltliche Änderung stattfinden.

Ergebnis sollte wie folgt aussehen:

Quelldateien

Verzeichnis 1
datei1.txt
datei2.txt
datei3.txt
.
datei100.txt

Zielverzeichnis

Verzeichnis 2

datei1.txt
datei2.txt
datei3.txt
.
datei100.txt

Da ich weder das Datum noch irgendeinen anderen Wert als Referenz nehmen kann habe ich hier ein kleines Problem. Die einzigste Angabe die ich definitiv machen kann ist die Tatsache, dass es in beiden Ordnern beispielsweise 100 Dateien hat (nur die Anzahl der Dateien in den jeweiligen Verzeichnissen stimmt IMMER überein).

Hoffe es ist einigermaßen verständlich geworden face-wink

Entschuldigt bitte die etwas umständliche Formulierung, da ich aber selbst noch keinen Lösungsansatz habe fällt es mir schwer die Problemstellung detaillierter zu formulieren.

Schöne Grüße aus Stuttgart und vielen dank im voraus

Duke

Content-ID: 25380

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

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

A-J
A-J 07.02.2006 um 12:26:34 Uhr
Goto Top
Sorry, Duke,

ich muss noch mal fragen:

Du möchtest die NAMEN der Dateien in eine Textdatei übertragen? Oder Du möchtest die Namen der Dateien in Verzeichnis 2 der Reihe nach den Namen der Dateien in Verzeichnis 1 anpassen?

MfG
A-J
Duke25
Duke25 07.02.2006 um 12:43:48 Uhr
Goto Top
Hallo A-J,

wusste doch dass es etwas kompliziert formuliert war face-wink

Ich möchte "die Namen der Dateien in Verzeichnis 2 der Reihe nach den Namen der Dateien in Verzeichnis 1 anpassen"

Danke für die schnelle Nachfrage, hoffe jetzt ists klar *g*

Schöne Grüße

Duke
Duke25
Duke25 07.02.2006 um 15:12:40 Uhr
Goto Top
sonst vll jemand da der helfen könnte? Mir geht es nicht darum die komplette Batch Datei vorgeschrieben zu bekommen sondern eher einen Lösungsansatz zu erhalten bzw. zu finden.

Meine Hoffnung war dass bereits vor mir jemand ein ähnliches Problem hatte und hier kompetent unterstützt wurde.

Vielen dank für eure Anregungen, Vorschläge etc...

Schöne Grüße aus dem kühlen Süden....face-smile

Duke
A-J
A-J 07.02.2006 um 20:10:58 Uhr
Goto Top
Hallo Duke,

ich verstehe, dass Du wie auf Kohlen gesessen und auf ne Antwort gewartet hast, aber ich mußte denn eben diese erst verdienen.

Habe gerade mal die Historie hier durchsucht und auf zwei Beiträge gestoßen, die prinzipiell das Umbennen der Dateien angehen. Wenn ich das richtig sehe, wäre da nur ein wenig Handarbeit nötig, um Dein Problem dann auch zu lösen.

Schau doch mal in die Diskussion hier:


Etwas weiter unten gibt es dann das Gleiche als .vbs


So, muss leider weiter arbeiten...

Gruß A-J
Biber
Biber 07.02.2006 um 20:40:39 Uhr
Goto Top
Moin Akan,

ungewöhnliche Anforderung...aber was soll's.

Eine mögliche Lösungsskizze (ich hab ein paar Zeilen mehr daraus gemacht wegen der Lesbarkeit):
::---snipp Rename2SameName.bat------------------
@echo off & setlocal
Set "OriginalDir=e:" & set "FakeDir=D:\temp"  
::Vorangehende Zeile Anpassen!!!
dir /b /A:-d %fakeDir%\*.*|find /n ".">%temp%\Fake.dir  
dir /b /A:-d %originalDir%\*.*|find /n ".">%temp%\original.dir  
for /f "delims=] tokens=1,2*" %%i in (%temp%\fake.Dir) do call :RenameFile %%i %%j  
goto :eof
~~~~~~~~
:RenameFile
for /F "skip=2 delims=] tokens=1,2" %%i in ('find "%1]" %temp%\Original.Dir') do echo Rename "%FakeDir%\%2" "%%j"  
goto :eof
::---snapp Rename2SameName.bat-------------

Das ECHO in der vorletzten Zeile kannst Du nach dem Testen auskommentieren.
Ergebnis bei obigem Bat ist (Simulation):
Rename2SameName.bat
Rename "D:\temp\1234.pdf" "shelexec.zip"
Rename "D:\temp\135334.pdf" "thisping.log"
Rename "D:\temp\ADtoolkitUserManual.pdf" "Dauerping.bat"
Rename "D:\temp\allpathsGT200.lst" "Dauerping.log"
Rename "D:\temp\backup.log" "GetAllDateTimeInfos.bat"
Rename "D:\temp\backup2.log" "putty-0.57-installer.exe"
Rename "D:\temp\Beispiel.asc" "Dauerping,bat.txt"
Rename "D:\temp\BEISPIEL.TXT" "Kopie von GetAllDateTimeInfos.bat"
Rename "D:\temp\cat_smilies.jpg" "DateWorkshop.txt"
usw.

HTH Biber
Duke25
Duke25 08.02.2006 um 08:55:07 Uhr
Goto Top
Hallo liebe Forenmitglieder,

vielen vielen dank für eure Antworten. Bin zwar nicht auf Kohlen gesessen aber verstehe es natürlich wenn du diese erst verdienen musst face-wink

Bin sehr dankbar für jeden Hinweis bzw. Ansatz um mein Problem zu lösen! In diesem Sinne ein riesiges Danke schön...

Werde mir die Beiträge gleich mal durchlesen und die Batch Datei testen, ihr habt mir sehr geholfen.

Ich weiß die Problemstellung ist etwas ungewöhnlich aber da es bei einem Kollegen von mir beim Datenbankexport zu einem Crash gekommen ist bedarf es eben ungewöhnlicher Maßnahmen face-smile.

Vielen dank und einen schönen Gruß aus dem Stuttgarter Süden

Duke
Duke25
Duke25 08.02.2006 um 09:47:38 Uhr
Goto Top
Hey Biber ich nochmal face-wink

bin jetzt mal deinen Code durchgegangen und habe versucht daraus schlau zu werden. Leider ohne Erfolg, wie ich ja bereits oben erwähnt hatte face-smile

Hab die Directories angepasst (absolute Pfadangabe) und das Skript scheint auch genau das zu tun was du angegeben hast. Bin beeindruckt face-wink

Nur leider heißen die Dateien nach Durchlauf des Skripts genauso wie vorher. War dein Vorschlag nur ein Dump oder war der Batch schon voll funktionsfähig?

Will ja keine Ansprüche stellen aber dacht ich frag mal nach face-smile

Big thx für deinen support

Grüße

Akan
Biber
Biber 08.02.2006 um 10:57:47 Uhr
Goto Top
Moin Akan,

Das ECHO in der vorletzten Zeile kannst Du nach dem Testen auskommentieren.

Okay, auskommentieren war unglücklich ausgedrückt.. löschen wäre eindeutiger. Sorry. face-wink
Also so:

:RenameFile
for /F "skip=2 delims=] tokens=1,2" %%i in ('find "%1]" %temp%\Original.Dir') do (
echo Rename "%FakeDir%\%2" "%%j" )
goto :eof

Dann ist es scharf.
Grüße Biber
[Edit]
*dirNatürlichAuchEinenRüberReich*
*jederzeitGerneUndDankbarAnnehme*
Vielen Dank und bis zum nächsten Batch face-wink
[/Edit]
Duke25
Duke25 08.02.2006 um 11:43:59 Uhr
Goto Top
Hey Biber,

vielen vielen dank. Du bist mein persönlicher Batch König face-smile

Funktioniert einwandfrei und erfüllt genau die gestellten Anforderungen. Darf mir jetzt meinen Kaffe abholen *dirNatürlichAuchEinenRüberReich*

Nochmals ganz großen dank für den super support und das Forum ist klasse. Wird sicherlich nicht das letzte mal gewesen sein face-wink

Wünsche allen einen schönen Tag und hoffentlich akzeptable Wetterverhältnisse face-smile

Akan