
30407
23.05.2006, aktualisiert am 24.05.2006
Suche in Batch
Hi,
ich würde gerne ein Batchprogramm schreiben,
1. ....dass nach einem bestimmten Ordner sucht.
2. Wenn dieser Ordner vorhanden ist sich selbst als Kopie darin ablegt.
Ist das in einer Batch möglich ?
ich würde gerne ein Batchprogramm schreiben,
1. ....dass nach einem bestimmten Ordner sucht.
2. Wenn dieser Ordner vorhanden ist sich selbst als Kopie darin ablegt.
Ist das in einer Batch möglich ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 33121
Url: https://administrator.de/forum/suche-in-batch-33121.html
Ausgedruckt am: 28.04.2025 um 09:04 Uhr
12 Kommentare
Neuester Kommentar
Moin,
vielleicht geht es mit WScript schneller, aber als Batch lässt es sich schneller Formulieren....
Der Parameter nach dem "for /R" kann ein bestimmtes Laufwerk "C:\" , "E:\"... oder halt das aktuelle ("\") sein.
Das @echo ist nur zum Testen - Zum Scharfmachen das "@ECHO" löschen.
Test am CMD-Prompt:
Hope That Helps
Biber
vielleicht geht es mit WScript schneller, aber als Batch lässt es sich schneller Formulieren....
...
for /R d:\ %%i in (.) do @if /i [%%~ni]==[GesuchtesDir] @ECHO copy %%~dpnx0 %%~dpni
Der Parameter nach dem "for /R" kann ein bestimmtes Laufwerk "C:\" , "E:\"... oder halt das aktuelle ("\") sein.
Das @echo ist nur zum Testen - Zum Scharfmachen das "@ECHO" löschen.
Test am CMD-Prompt:
(= 9:25:01 D:\temp=)
>for /R d:\ %i in (.) do @if /i [%~ni]==[backup1] @echo copy mein.bat %~dpni
copy mein.bat d:\temp\Backup1
Hope That Helps
Biber
Uups, sorry,
diesmal hatte ich ein Prozentzeichen zuviel in der Batch-Variante:
also bitte ein schlichtes %~dpnx0 statt %%~dpnx0
(Kommt vom Posten ungetesteter Schnipsel....ich wollte es mir eigentlich abgewöhnen.
so wie das Rauchen und das Fluchen...*grmbl*)
Gruß
Biber
diesmal hatte ich ein Prozentzeichen zuviel in der Batch-Variante:
also bitte ein schlichtes %~dpnx0 statt %%~dpnx0
for /R d:\ %%i in (.) do @if /i [%%~ni]==[GesuchtesDir] copy %~dpnx0 %%~dpni
(Kommt vom Posten ungetesteter Schnipsel....ich wollte es mir eigentlich abgewöhnen.
so wie das Rauchen und das Fluchen...*grmbl*)
Gruß
Biber
Merkwürdig...hier mein Test:
???
Biber
[Edit] Aaaaaaaaaber: Wenn der Zielordner fürs Copy "c:\Dokumente und Einstellungen\..." heißt, dann gibts Syntaxfehler.
-->Zielpfad in Anführungszeichen setzen wegen Leerzeichen.
[/Edit]
(=13:04:29 E:\=)
>type f:\Administrator\Inkognitar.bat
@for /R d:\ %%i in (.) do @if /i [%%~ni]==[backup1] ECHO copy %~dpnx0 %%~dpni
(=13:04:51 E:\=)
>f:\Administrator\Inkognitar.bat
copy f:\Administrator\Inkognitar.bat d:\temp\Backup1
???
Biber
[Edit] Aaaaaaaaaber: Wenn der Zielordner fürs Copy "c:\Dokumente und Einstellungen\..." heißt, dann gibts Syntaxfehler.
@for /R d:\ %%i in (.) do @if /i [%%~ni]==[backup1] ECHO copy %~dpnx0 "%%~dpni"
-->Zielpfad in Anführungszeichen setzen wegen Leerzeichen.
[/Edit]
Na, Inkognitar,
verwirren wollte ich Dich nicht, also:
a) Das "@" vor einem CMD-Befehl unterdrückt nur dessen ECHO-Anzeige.
Wenn Du also eine @for..in..do-anweisung abschickst vom CMD-Prompt aus, wird die Anweisung selbst NICHT noch mal angezeigt.
Teste mal am CMD-Prompt
for %i in (1,2,3) do echo %i
-und-
for %i in (1,2,3) do @echo %i
..dann siehst Du den Unterschied.
b) Der von mir gepostete Schnipsel macht ja auch kein "copy ..von...nach..", sondern nur eine Simulation "ECHO copy ..von...nach.."
Lösche dieses Wort ECHO, dann funktioniert es.
Gruß
Biber
verwirren wollte ich Dich nicht, also:
a) Das "@" vor einem CMD-Befehl unterdrückt nur dessen ECHO-Anzeige.
Wenn Du also eine @for..in..do-anweisung abschickst vom CMD-Prompt aus, wird die Anweisung selbst NICHT noch mal angezeigt.
Teste mal am CMD-Prompt
for %i in (1,2,3) do echo %i
-und-
for %i in (1,2,3) do @echo %i
..dann siehst Du den Unterschied.
b) Der von mir gepostete Schnipsel macht ja auch kein "copy ..von...nach..", sondern nur eine Simulation "ECHO copy ..von...nach.."
Lösche dieses Wort ECHO, dann funktioniert es.
Gruß
Biber
Siehe oben: numm den letzten von mir in einem Kästchen stehenden Oneliner.
Den, wo der Copy-Zielparameter in Hochkommata steht:
Der Syntaxfehler kommt von Zielverzeichnissen mit Leerzeichen im Verzeichnisnamen.
Ehrlich
Biber
Den, wo der Copy-Zielparameter in Hochkommata steht:
@echo off
for /R c:\ %%i in (.) do @if /i [%%~ni]==[test] copy %~dpnx0 "%%~dpni"
Der Syntaxfehler kommt von Zielverzeichnissen mit Leerzeichen im Verzeichnisnamen.
Ehrlich
Biber
Dass die *.bat-Datei selbst auf dem Desktop liegen könnte...darauf bin ich natürlich auch nicht gekommen. Aber dann wären -wie Du auch selbst geschrieben hast- die Anführungszeichen der richtige Weg.
Wenn Die Bat-Datei einen neuen Namen bekommen soll, dann:
::----------snipp Inkognitar.bat
for /R c:\ %%i in (.) do @if /i [%%~ni]==[whatever] ECHO copy "%~dpnx0" "%%~dpni\NeuerBatName.bat"
:: --------snapp Inkognitar.bat
copy "c:\Dokumente und Einstellungen\Administrator\Desktop\Inkognitar.bat" "c:\Im abgelegenen Verzeichnis\whatever\NeuerBatName.bat"
Biber