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

Mit Batch alle Dateien im Ordner zu Variable setzen und dann die enthaltenen Befehle mit einer FOR-Schleife ausführen xD

Frage Entwicklung Batch & Shell

Mitglied: bilalui

bilalui (Level 1) - Jetzt verbinden

24.09.2014 um 18:11 Uhr, 1725 Aufrufe, 9 Kommentare, 2 Danke

Hallo zusammen,

mal wieder habe ich ein großes Problem mit einer Batch. Die Batch um die es sich handelt hat den einzigen Auftrag, alle Dateien in einem Ordner zu einer Variable zu setzen und dann den Inhalt mit einer FOR-Schleife auszuführen. (Der Inhalt der Dateien sind Befehle in "BEFEHL Bla Bla") Das ausführen der Befehle ist kein Problem. Blos leider bekomme ich es nicht hin, dass die Batch ALLE DATEIEN IN DEM ORDNER abarbeitet (Es wird immer nur eine abgearbeitet).

Hier die momentanen Zeilen der Batch:

for %%f in ("DATA_COMP\plugins\core"\*.plg) do set plugin==%%f
for %%f in ("DATA_COMP\plugins\core"\%plugin%.plg) do "" %%f

Gibt es irgendwelche Möglichkeiten um das Problem zu lösen? Ich bin flexible und kann mit verschiedenen Lösungswegen immer etwas anfangen.
Hoffe ich habe mein Problem gut genug geschildert :D


LG und schönen Feierabend


Bilalui
Mitglied: bastla
24.09.2014 um 18:21 Uhr
Hallo bilalui!

Welchen Sinn soll denn die Variable %plugin% haben? Du kannst doch direkt %%f verwenden:
for %%f in ("DATA_COMP\plugins\core\*.plg") do "%%f"
Was die Anführungszeichen nach dem "do" sollten, kann ich mir übrigens auch nicht vorstellen ...

Grüße
bastla
Bitte warten ..
Mitglied: bilalui
24.09.2014 um 18:32 Uhr
Hallo bastla,

Da hast du Recht. Es würde auch in einer Zeile gehen. Die Anführungszeichen nach dem DO sind auch überflüssig wie ich gerade festgestellt habe. Allerdings löst das nicht das eigentliche Problem.



Bilalui
Bitte warten ..
Mitglied: bastla
24.09.2014 um 18:36 Uhr
Hallo bilalui!

Worin bestand nochmal das Problem?

Grüße
bastla
Bitte warten ..
Mitglied: bilalui
24.09.2014 um 18:41 Uhr
Hallo Bastla,


Das Problem ist das die Zeile nur eine Datei in dem Ordner verarbeitet. Sie soll aber alle abarbeiten :D
Bitte warten ..
Mitglied: bastla
24.09.2014 um 18:48 Uhr
Hallo bilalui!

Ich weiß ja nicht, womit Deine *.plg-Dateien ausgeführt werden - aber bei einem kurzen Test mit *.txt-Dateien wurden diese alle mit dem verknüpften Programm (Editor) geöffnet ...

Alternativ kannst Du noch
for %%f in ("DATA_COMP\plugins\core\*.plg") do start "" "%%f"
versuchen (ggf auch mit dem Parameter "/wait", falls nacheinander gestartet werden soll).

Wenn Du mehrere andere Batches starten wolltest, käme noch
for %%f in ("DATA_COMP\plugins\core\*.plg") do call "%%f"
in Frage ...

Grüße
bastla
Bitte warten ..
Mitglied: bilalui
24.09.2014 um 19:02 Uhr
Hallo Bastla,

die PLG-Dateien enthalten Batchbefehle in Anführungszeichen und die Batchzeile soll diese Lesen (was sie auch bei mir macht) und ausführen und dann sollte sie gleich die nächste Datei lesen und ausführen.
Die Zeilen die du hast, öffnen zwar alle Dateien im Editor aber nicht in der Batch


Bilalui
Bitte warten ..
Mitglied: bastla
24.09.2014 um 22:02 Uhr
Hallo bilalui!
die PLG-Dateien enthalten Batchbefehle in Anführungszeichen
Und wozu das Ganze? Wäre es nicht einfacher, "richtige" Batches zu schreiben, passend zu benennen (als *.bat oder *.cmd - schlimmstenfalls auch als Kopie Deiner *.plg-Datei, wobei allerdings die Anführungszeichen stören dürften) und sie wie in meinem letzten Ansatz gezeigt auszuführen?

Wenn Du wirklich Zeile für Zeile auslesen und dann ausführen wolltest, müsste das eher so aussehen:
for %%f in ("DATA_COMP\plugins\core\*.plg") do for /f "delims=" %%a in (%%f) do %%~a
Grüße
bastla
Bitte warten ..
Mitglied: rubberman
24.09.2014, aktualisiert um 22:05 Uhr
Hallo Zusammen.

Oder auch
for /f "tokens=1* delims=:" %%i in ('findstr . "DATA_COMP\plugins\core\*.plg"') do ECHO %%~j
Wobei das ECHO erst mal nur ausgibt ...

Grüße
rubberman
Bitte warten ..
Mitglied: bilalui
25.09.2014 um 17:48 Uhr
Hallo,

danke für die schnellen Vorschläge. Ich glaube ich muss die Batch doch umändern so wie Bastla es machen würde. Trotzdem vielen Dank für eure Hilfe.



Bilalui
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(4)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch: Variable Expansion in einer FOR-Schleife (9)

Frage von .Sessl zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...