joman78
Goto Top

Batch gesucht

hi,

brauche dringend hilfe

folgende situation

habe einen ordner c:\bb mit ca 400 unterordner drin weiterhin habe ich einen ordner c:\pdf wo ein test.pdf drin ist nun soll dieses pdf
in alle 400 unterordner in c:\bb rein kopiert werden.

ich hab null ahnung also eine ausführliche hilfe am besten mit den datei namen würde mir helfen

Content-Key: 145891

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

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

Member: BigWim
BigWim Jun 29, 2010 at 14:05:53 (UTC)
Goto Top
das in eine Dosbox kopieren und wenn die Pfade richtig sein, dass @echo weglassen

for /f %a in ('dir u: /ad /s /b') do @echo copy x:\test.pdf %a\test.pdf  
Member: bastla
bastla Jun 29, 2010 at 14:21:16 (UTC)
Goto Top
@BigWim
Soferne die 400 Unterordner auch noch Unter-Unterordner hätten, gäbe es ein paar Kopien mehr face-wink ...

... daher als (ungetestete) Alternative (ebenfalls zur Direkteingabe in der CMD-Shell):
for /d %a in (c:\bb\*.*) do @echo copy c:\pdf\test.pdf "%a\"

... und übrigens: Willkommen im Forum, joman78!

Grüße
bastla
Member: joman78
joman78 Jun 29, 2010 at 14:22:16 (UTC)
Goto Top
und wo trag ich meine pfade hier ein kannst du es vielleicht mit meinen beispiel daten nochmal schreiben
Member: BigWim
BigWim Jun 29, 2010 at 14:30:41 (UTC)
Goto Top
Hallo Bastla,

danke für die Verbesserung. Mit dem for /d habe ich es zuerst probiert, aber nicht hinbekommen. Der Wert in den (..) wurde mir immer mit ausgegeben.

Jetzt habe ich wieder einen kleinen Ansatz face-wink

Markus
Member: joman78
joman78 Jun 29, 2010 at 14:32:08 (UTC)
Goto Top
hallo bastla,

danke für den wilkommens gruß und du bist mein held
ich dachte schon ich muss verzweifeln aber dank dir hab ich mir geschätze 4 stunden arbeit gespart

@BigWim
dir auch danke
Member: BigWim
BigWim Jun 30, 2010 at 06:34:44 (UTC)
Goto Top
Zitat von @BigWim:
Mit dem for /d habe ich es zuerst probiert, aber nicht hinbekommen.
Stimmt gar nicht. Ist gelogen.

Wer lesen kann, ist klar im Vorteil.

Ich hatte es mit /R probiert, was am Ergebnis (zuviele Kopien) nichts geändert hätte. Aber die Ausgabe ist m. E. unbrauchbar gewesen, bzw. ich hätte noch etwas mehr tun müssen ...

Ich werde als noch etwas forschen müssen!

Markus


for /R %a in () do @echo %a
= keine Ausgabe

for /R %a in (u:\) do @echo %a
= diese Ausgabe:

U:\anwendungsdaten\Microsoft\u:\
U:\anwendungsdaten\Microsoft\Abfragen\u:\
U:\anwendungsdaten\Microsoft\AddIns\u:\
U:\anwendungsdaten\Microsoft\Excel\u:\
U:\anwendungsdaten\Microsoft\Excel\XLStart\u:\
U:\anwendungsdaten\Microsoft\HTML Help\u:\
U:\anwendungsdaten\Microsoft\Internet Explorer\u:\
U:\anwendungsdaten\Microsoft\Office\u:\
U:\anwendungsdaten\Microsoft\Office\Zuletzt verwendet\u:\
Member: Biber
Biber Jun 30, 2010 at 07:08:44 (UTC)
Goto Top
Moin BigWim,

Ich werde als noch etwas forschen müssen!
Okay, dann mal zwei bis vier Tipps dazu...

  • die FOR /R-Anweisung ("/R" ist logischerweise die Insider-Abkürzung für "schräg runterrödeln") erlaubt und erwartet einen Parameter unmittelbar nach dem "/R", der angibt von welchen Verzeichnis/Knoten/Anker/Root aus denn begonnen werden sollte. Diesen Parameter unbedingt nutzen. notfalls durch Eingabe von "." (=aktuelles Verzeichnis) als Parameter.

--> würde bedeuten: aus deinem [for /R %a in (u:\) do @echo %a] würde geradegerückt ein [for /R "u:\" %a in ...].

  • Wenn der Wurzelknoten aber nun schon in diesem Parameter erwartet wird, dann wird er in der Klammer keinen Sinn machen.

--> würde bedeuten: aus deinem [for /R %a in (u:\) do @echo %a] ist jetzt schon ein [for /R "u:\" %a in (whatever) do @echo %a] geworden

  • Und nun das, was der letzte nötige Hint ist: es funktioniert nur "wie erwartet", wenn in der Klammer eine Suchwildcard steht.

Demo (mit meinen Pfaden)
>for /r "D:\temp" %a in (whatever) do @echo %a  
D:\temp\whatever
D:\temp\$logs\whatever

>for /r "D:\temp" %a in (whatever?) do @echo %a  


>for /r "D:\temp" %a in (*.txt) do @echo %a  
D:\temp\wemdas.txt
D:\temp\WemdasAuswertung.txt
--> wenn ich ab Verzeichnis "D:\temp" schräg runterrödeln lasse nach "whatever" ( OHNE Wildcard-Angabe "*" oder "?")
> gibt es nicht, Ausgabe sind aber alle durchgenudelten Verzeichnisse gefolgt vom Namen "whatever".
> [Das hätte niemand so erwartet... ist aber so implementiert. --> In der Regel unbrauchbar, meiden!!]

--> wenn ich ab Verzeichnis "D:\temp" schräg runterrödeln lasse nach "whatever?" oder "whatever*"
> Datei(en) "whatever?" gibt es nicht---> KEINE Ausgabe--> Richtiges Ergebnis

--> wenn ich ab Verzeichnis "D:\temp" schräg runterrödeln lasse nach "*.txt"
> Datei(en) *.txt gibt es immer --> werden wie erwartet angezeigt.

Fröhliches Weitertesten
Biber
Member: BigWim
BigWim Jun 30, 2010 at 07:26:19 (UTC)
Goto Top
Moin Biber,

Zitat von @Biber:
Okay, dann mal zwei bis vier Tipps dazu...

Unter Tipps habe ich bisher im Winks mit dem Zaunpfahl verstanden face-wink
Ich sag mal: VIELEN DANK für die ausführliche Erklärung!

Ein motivierter Tester