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

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

Frage Entwicklung Batch & Shell

Mitglied: Duke25

Duke25 (Level 1) - Jetzt verbinden

07.02.2006, aktualisiert 08.02.2006, 6361 Aufrufe, 9 Kommentare

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

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
Mitglied: A-J
07.02.2006 um 12:26 Uhr
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
Bitte warten ..
Mitglied: Duke25
07.02.2006 um 12:43 Uhr
Hallo A-J,

wusste doch dass es etwas kompliziert formuliert war

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
Bitte warten ..
Mitglied: Duke25
07.02.2006 um 15:12 Uhr
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....

Duke
Bitte warten ..
Mitglied: A-J
07.02.2006 um 20:10 Uhr
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:

http://www.administrator.de/Kann_Batchdatei_Dateinamen_einlesen_und_%E4 ...

Etwas weiter unten gibt es dann das Gleiche als .vbs


So, muss leider weiter arbeiten...

Gruß A-J
Bitte warten ..
Mitglied: Biber
07.02.2006 um 20:40 Uhr
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):
<font class=code>::---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-------------</font>

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
Bitte warten ..
Mitglied: Duke25
08.02.2006 um 08:55 Uhr
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

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 .

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

Duke
Bitte warten ..
Mitglied: Duke25
08.02.2006 um 09:47 Uhr
Hey Biber ich nochmal

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

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

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

Big thx für deinen support

Grüße

Akan
Bitte warten ..
Mitglied: Biber
08.02.2006 um 10:57 Uhr
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.
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
[/Edit]
Bitte warten ..
Mitglied: Duke25
08.02.2006 um 11:43 Uhr
Hey Biber,

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

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

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

Akan
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(7)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...