Top-Themen

Aktuelle Themen (A bis Z)

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

Anzahl Variablen erkennen und automatisch in Schleife verarbeiten

Mitglied: crazyhoesl

crazyhoesl (Level 1) - Jetzt verbinden

18.10.2007, aktualisiert 21.11.2007, 3791 Aufrufe, 4 Kommentare

Hallo,

ich habe in meiner Batches oft folgenden Wunsch:

Um es gleich leichter verständlich zu machen verdeutliche ich mein Anliegen anhand eines Beispieles:

Ich bestimme z.B. folgende vier Variablen zu Beginn meiner Batch:

01.
set backupdir=%Systemdrive%\Backups
02.
set progdir=%Systemdrive%\Progs
03.
set docsdir=%Systemdrive%\User\Docs
04.
set imgdir=%homepath%\Images
Im weiteren Verlauf möchte ich damit folgendes anstellen:

01.
xcopy /Y %backupdir%\*.* F:\
02.
xcopy /Y %progdir%\*.* F:\
03.
xcopy /Y %docsdir%\*.* F:\
04.
xcopy /Y %imgdir%\*.* F:\
Jetzt ist das erstens ziemlich viel schreibarbeit, und zweitens macht sich bei mir öfters der Wunsch breit, eine Variable hinzuzufügen, leider muss ich dann im weiteren Code auch einen XCOPY Befehl hinzufügen.

Ist das nicht irgendwie einfacher lösbar? Ich denke da an eine Schleife, die z.B. erkennt wieviele Variablen festgelegt wurden, und dann - in diesem Beispiel eben vier mal - durchläuft und bei jedem Durchlauf die nächste Variable verwendet. Somit benötige ich nur eine XCOPY Zeile, was nicht zuletzt der Übersichtlichkeit des Quellcodes dient.

Sollte das wirklich möglich sein, stehe ich vor einem weiterem Problem: Ich möchte natürlich mehr als nur vier Variablen definieren, aber nur vier für die Schleife verwenden müssen.

Bin für eure konstruktiven Vorschläge offen!

Euer
crazyhoesl
Mitglied: Biber
18.10.2007 um 23:59 Uhr
Moin crazyhoesl,

ich versteh das Problem nicht ganz... es steht dir doch frei, deine Variablen irgendwo als Verarbeitungsliste einer FOR-Anweisung zu verwenden.

Vielleicht hilft folgendes Beispiel am CMD-Prompt:
01.
(=23:52:29  D:\temp=)
02.
>set "YED=Y:\Eigene Dateien"
03.
 
04.
(=23:52:56  D:\temp=)
05.
>set "dworkdir=D:\Work"
06.
 
07.
(=23:53:04  D:\temp=)
08.
>for  %i in ("%YED%" "%dworkdir%") do @echo xcopy "%~i\*.*" f:\archiv\
09.
xcopy "Y:\Eigene Dateien\*.*" f:\archiv\
10.
xcopy "D:\Work\*.*" f:\archiv\
Im Bereich "Batch und Shell" steht auch ein Tutorial aus der "Batch for Runaways"-Reihe, in dem beschrieben wird, wie bestimmte Variablen zu Debugzwecken "verfolgt", gesetzt, gelöscht.... na ja, halt selektiv auch in Schleifen verwendet werden können.
Schau mal in BatchTut I und II ("FindLongPath" und "Ein bisschen Handwerkszeugs").

Gruß
Biber
Bitte warten ..
Mitglied: bastla
19.10.2007 um 00:18 Uhr
... es steht dir doch frei, deine Variablen irgendwo als Verarbeitungsliste einer FOR-Anweisung zu verwenden.
... oder gleich ganz darauf zu verzichten (womit Du Ergänzungen nur an einer einzigen Stelle vornehmen müsstest):
01.
for %%i in ("%Systemdrive%\Backups" "%Systemdrive%\Progs" "%Systemdrive%\User\Docs" "%homepath%\Images") do echo xcopy /Y "%%~i\*.*" F:\
Anmerkungen: Das "echo" dient nur zu Demozwecken und ist im "Ernstfall" natürlich wegzulassen. Außerdem ist Biber's Variante für die Kommandozeile formuliert (%i) und meine Version für Batch (%%i) gedacht.
Eine weitere Möglichkeit wäre natürlich, die einzelnen Pfade (jeden in einer eigenen Zeile) in einer Textdatei zu hinterlegen und diese auszulesen:
01.
for /f "delims=" %%i in (D:\Pfadliste.txt) do echo xcopy /Y "%%~i\*.*" F:\
Grüße
bastla
Bitte warten ..
Mitglied: Biber
19.11.2007 um 09:41 Uhr
Moin kratzihoesl,
Bin für eure konstruktiven Vorschläge offen!
Heute vor einem einem Monat haben wir konstruktiv geantwortet.
Gibst Du mal konstruktives Feedback?

Danke
Biber
Bitte warten ..
Mitglied: Biber
21.11.2007 um 08:38 Uhr
Hm,

das werte ich mal Antwort und nehme es zum Anlass, diesen Beitrag zu schließen.

@kratzi: Bin aber natürlich per PN erreichbar, falls der Beitrag wieder geöffnet werden soll.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Automatisch entscheiden ob prozentual oder fest anzahl von Datensätze

gelöst Frage von hugothemagpieMicrosoft Office7 Kommentare

Mein Problem ich habe ein access-datenbank der einen menge and datensätze hat, je nach abfrage will ich dass es ...

Basic

Regex Anzahl Character Nicht Anzahl Bytes

gelöst Frage von PeronasBasic6 Kommentare

Guten Morgen zusammen, und zwar habe ich eine Frage bzgl. RegEx/RegExp. Ich habe einen regulären Ausdruck der wie folgt ...

Zusammenarbeit

Minimale Anzahl Admins?

Frage von 1410640014Zusammenarbeit6 Kommentare

Hallo, Frage: mir kommen immer wieder KMUs unter, die so 50-250 Angestellte, aber entweder gar keinen Admin, also nur ...

Netzwerke

Anzahl der Subnetze

gelöst Frage von CrownClownNetzwerke11 Kommentare

Hallo, Wie kann ich verstehen, wie viele Subnetze ich habe, wenn mein Subnetmaske 255.255.255.0 und mein ip z.B. 192.243.14.63 ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 2 TagenHumor (lol)3 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 3 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 6 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 6 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
PCIe 1.0 Grafikkarte für 3840x2160
Frage von Windows10GegnerGrafikkarten & Monitore29 Kommentare

Hallo, mein Vater hat einen neuen Monitor gekauft, welcher eine native Auflösung von 3840*2160 hat. Diese muss jetzt auch ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1022 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server21 Kommentare

Guten Morgen, die Suche nach Diensten in services.msc gestaltet sich immer wieder schwierig, weil mir je nach Aufgabe die ...

Linux
Info Monitor für eine Schule
gelöst Frage von CAT404Linux13 Kommentare

Moin, ich möchte einen Infomonitor betreiben; derzeit läuft da ein Windows 10 Rechner bei dem Firefox beim Start in ...