vmarkus
Goto Top

Ordnernamen aus Datei auslesen und Datei reinkopieren

Hallo,

ich versuche eine BATCH Datei zu schreiben die erst ein DIR eines Ordners in eine Datei schreibt und dann in jeden Ordner in dieser Datei eine andere Datei kopiert.

Bisher sieht meine Datei so aus

dir "c:\documents and settings\*.*" /b > c:\dir.txt

Leider hab ich keinen Plan wie ich jetzt aus der Datei c:\dir.txt alle Einträge in eine Variable bekomme um dann folgenden Befehl durchzuführen

copy c:\settings.dat %pfad%
%pfad% sollte dann zB so aussehen "c:\documents and settings\Administrator"

Ich hab einige Beispiele für FOR Schleifen gefunden, habs aber nicht geschafft das für mich umzuschreiben.
Vielleicht kann mir hier jemand helfen.

Vielen Dank schonmal

Content-Key: 62429

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

Printed on: April 26, 2024 at 04:04 o'clock

Member: Biber
Biber Jun 27, 2007 at 06:30:48 (UTC)
Goto Top
Moin vmarkus,

willkommen im Forum.

Wenn Du nur die Unterverzeichnisse unterhalb "c:\Documents and Settings" einsammeln willst, solltest Du das auch durch den DIR-Parameter "/a:d" (nur Verzeichnisse, keine Dateien) kundtun.

Dann würde sich die FOR/F-Anweisung als Einzeiler z.B. so ergeben:
[Test am CMD-Prompt]
For /F "delims=" %i in ('dir /a:d /b "c:\Documents and Settings\*.*"') do @echo copy c:\settings.dat "%~i\"  
[Das @echo nur zum Proof-of-Concept.]

Falls diese ungetestete Skizze klappen sollte, würde der Batch so aussehen könne:
::---- snipp CopyMySettings.bat
@For /F "delims=" %%i in ('dir /a:d /b "c:\Documents and Settings\*.*"') do @copy c:\settings.dat "%%~i\"  
::---- snapp CopyMySettings.bat

Grüße
Biber
Member: vMarkus
vMarkus Jun 27, 2007 at 06:43:40 (UTC)
Goto Top
Vielen Dank, Biber!

Das funktioniert einwandfrei face-smile
Member: Biber
Biber Jun 27, 2007 at 11:16:49 (UTC)
Goto Top
Moin vMarkus,

freut mich.
Dann noch eine Fussnote: Besser geeignet wäre hier die FOR/D-Anweisung.
FOR /D %i in  ("C:\Dokuments and Settings\*.*") do @echo copy c:\settings.dat "%i\*.*"  

Im Ergebnis ist es natürlich dasselbe.

Grüße
Biber