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

Suche in Batch

Frage Entwicklung Batch & Shell

Mitglied: 30407

30407 (Level 1)

23.05.2006, aktualisiert 24.05.2006, 5178 Aufrufe, 12 Kommentare

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 ?
Mitglied: n.beetz
23.05.2006 um 22:33 Uhr
Hallo,

na willst Du einen kleinen Virus schreiben?

Muss es denn eine Batch sein oder gehen auch WScript?

Gruß

Norbert
Bitte warten ..
Mitglied: Biber
24.05.2006 um 09:26 Uhr
Moin,
vielleicht geht es mit WScript schneller, aber als Batch lässt es sich schneller Formulieren....

01.
... 
02.
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:
01.
 
02.
(= 9:25:01  D:\temp=) 
03.
>for /R d:\ %i in (.) do @if /i [%~ni]==[backup1] @echo copy mein.bat %~dpni 
04.
copy mein.bat d:\temp\Backup1
Hope That Helps
Biber
Bitte warten ..
Mitglied: 30407
24.05.2006 um 11:32 Uhr
Hi

bei dem Code:
<Code>
for /R d:\ %%i in (.) do @if /i [%%~ni]==[GesuchtesDir] copy %%~dpnx0 %%~dpni
<Code>

muss ich doch nur "GesuchtesDir" durch den Namen der Datei ersetzen (z.B. test), oder ?
Jedoch kam bei immer Fehlermeldungen, das das System das Verzeichnis nicht finden kann !
Woran liegt das ?
Bitte warten ..
Mitglied: Biber
24.05.2006 um 11:57 Uhr
Uups, sorry,

diesmal hatte ich ein Prozentzeichen zuviel in der Batch-Variante:

also bitte ein schlichtes %~dpnx0 statt %%~dpnx0
01.
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
Bitte warten ..
Mitglied: 30407
24.05.2006 um 12:57 Uhr
Hi,
sry aber der neue Code:
<Code>
for /R d:\ %%i in (.) do @if /i [%%~ni]==[test²] copy %~dpnx0 %%~dpni
<Code>

funktioniert auch nicht. Neue Fehlermeldung : Syntaxfehler.

² für den Ordner test

Gruss Inkognitar
Bitte warten ..
Mitglied: Biber
24.05.2006 um 13:06 Uhr
Merkwürdig...hier mein Test:
01.
 
02.
(=13:04:29  E:\=) 
03.
>type f:\Administrator\Inkognitar.bat 
04.
@for /R d:\ %%i in (.) do @if /i [%%~ni]==[backup1] ECHO copy %~dpnx0 %%~dpni 
05.
 
06.
(=13:04:51  E:\=) 
07.
>f:\Administrator\Inkognitar.bat 
08.
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.
01.
@for /R d:\ %%i in (.) do @if /i [%%~ni]==[backup1] ECHO copy %~dpnx0 "%%~dpni"
-->Zielpfad in Anführungszeichen setzen wegen Leerzeichen.
[/Edit]
Bitte warten ..
Mitglied: 30407
24.05.2006 um 13:27 Uhr
Hi,

also eigentlich heisst, der Pfad C:\Test --> keine Anführungszeichen nötig.
Außerdem bin ich jetz ganz durch einander : Brauch man nun ein "@" Symbol vor "For" oder nicht ? Auch dachte ich, ich sollte @echo löschen. ?!
Also habe ich folgendes ausprobiert:
<Code>
@echo off
@for /R c:\ %%i in (.) do @if /i [%%~ni]==[test] echo copy %~dpnx0 %%~dpni
<Code>

In der Konsole erchien dann:

copy C:\Dokumente und Einstellungen\Besitzer\Desktop\suche.bat c:\Dokumente und Einstellungen\Besitzer\Eigene Dateien\ChessBase\Test
copy C:\Dokumente und Einstellungen\Besitzer\Desktop\suche.bat c:\MeineProjekte\test
copy C:\Dokumente und Einstellungen\Besitzer\Desktop\suche.bat c:\Programme\Techland\Chrome\JavaChromeGame\NetModule\Objects\Test
copy C:\Dokumente und Einstellungen\Besitzer\Desktop\suche.bat c:\Programme\Techland\Chrome\JavaChromeGameNet\NetModule\Objects\Test
copy C:\Dokumente und Einstellungen\Besitzer\Desktop\suche.bat c:\Programme\Valve\Steam\SteamApps\SourceMods\Halloween\materials\models\test
copy C:\Dokumente und Einstellungen\Besitzer\Desktop\suche.bat c:\Programme\Valve\Steam\SteamApps\SourceMods\Halloween\models\test
copy C:\Dokumente und Einstellungen\Besitzer\Desktop\suche.bat c:\Programme\Valve\Steam\SteamApps\SourceMods\metastasis\materials\test
copy C:\Dokumente und Einstellungen\Besitzer\Desktop\suche.bat c:\test

Jedoch fand ich in keinem, suche.bat ! Woran liegt das ?

Edit: Mit "%%~dpni" hat es auch nicht funktioniert.
Bitte warten ..
Mitglied: Biber
24.05.2006 um 13:59 Uhr
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
Bitte warten ..
Mitglied: 30407
24.05.2006 um 15:21 Uhr
Hi,

sry aber wenn ich aus dem Code:
<Code>
@echo off
@for /R c:\ %%i in (.) do @if /i [%%~ni]==[test] echo copy %~dpnx0 %%~dpni
<Code>

das echo weglösche:
<Code>
@echo off
@for /R c:\ %%i in (.) do @if /i [%%~ni]==[test] copy %~dpnx0 %%~dpni
<Code>

kommt wieder die fehlermeldung: Syntaxfehler.
cmdausgabe:

Syntaxfehler.
Syntaxfehler.
Syntaxfehler.
Syntaxfehler.
Syntaxfehler.
Syntaxfehler.
Syntaxfehler.
Syntaxfehler.

gruss Inkognitar
Bitte warten ..
Mitglied: Biber
24.05.2006 um 15:42 Uhr
Siehe oben: numm den letzten von mir in einem Kästchen stehenden Oneliner.
Den, wo der Copy-Zielparameter in Hochkommata steht:
01.
@echo off 
02.
for /R c:\ %%i in (.) do @if /i [%%~ni]==[test] copy %~dpnx0 "%%~dpni"
Der Syntaxfehler kommt von Zielverzeichnissen mit Leerzeichen im Verzeichnisnamen.
Ehrlich

Biber
Bitte warten ..
Mitglied: 30407
24.05.2006 um 16:24 Uhr
Hi,

ich habe es nochmal mit den Anführungszeichen probiert:
<Code>
@echo off
for /R c:\ %%i in (.) do @if /i [%%~ni]==[test] copy %~dpnx0 "%%~dpni"
<Code>

jedoch kam wieder die Syntaxfehlermeldung. Kann es sein das "C:\Dokumente und Einstellungen\Besitzer\..." falsch ist, sondern C:\Dokumente" "und" "Einstellungen\Besitzer lauten müsste und daher der Compiler es nicht versteht ? Jedoch müsste er dann eigentlich bei C:\test keine Probleme haben, aber genau da hat er auch den Syntaxfehler gemeldet.

Edit: Es muss an "Dokumente und Einstellungen" liegen, das er die bei C:\test nicht funktioniert liegt, woll daran das sich suche.bat auf dem Desktop befindet und damit im Verzeichnis C:\Dokumente und Einstellungen\Besitzer\Desktop ist. ==> Pfad von suche.bat muss auch in "".

Edit2: Ich habe es geschafft ! Vollständige Lsg:
@echo off
for /R c:\ %%i in (.) do @if /i [%%~ni]==[test] copy "%~dpnx0" "%%~dpni"

Edit3: Ich hätte noch eine Frage: Kann ich die batch datei in dem gefunden verzeichnis unter einem anderen Namen abspeichern und unter verschiedenen Namen im gefundenen Verzeichnis mehrmals speichern ?
Bitte warten ..
Mitglied: Biber
24.05.2006 um 18:04 Uhr

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:
01.
::----------snipp Inkognitar.bat 
02.
for /R c:\ %%i in (.) do @if /i [%%~ni]==[whatever] ECHO copy "%~dpnx0" "%%~dpni\NeuerBatName.bat" 
03.
:: --------snapp Inkognitar.bat
-->löst auf zu:
01.
copy "c:\Dokumente und Einstellungen\Administrator\Desktop\Inkognitar.bat"  "c:\Im abgelegenen Verzeichnis\whatever\NeuerBatName.bat"
Gruß und schönes Wochenende
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Suche Batch-Programm zum Zusammenfügen zweier PDF-Dateien (3)

Frage von Sinzal zum Thema Batch & Shell ...

Windows Tools
Suche Batch Scheduler (.bat .cmd .exe) (8)

Frage von hf1965 zum Thema Windows Tools ...

Batch & Shell
gelöst Teile eines Dateinamens ändern mit Batch Datei (4)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (2)

Frage von tralveller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (30)

Frage von Datsspeed zum Thema Exchange Server ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (22)

Frage von Oldschool zum Thema Router & Routing ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...