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

Strings aus Datei in Variablen einlesen, keine festen Zeilenpositionen

Mitglied: meyerro

meyerro (Level 1) - Jetzt verbinden

20.04.2008, aktualisiert 21.04.2008, 3757 Aufrufe, 5 Kommentare

Eine ausgelesene Anzahl an Pfadnamen in eine Variable aufnehmen und anschließend per WinRAR abarbeiten

Halli Hallo,

irgendwie komme ich mit dem Thema nicht mehr ganz klar. Habe schon seit Jahren nichts mehr mit Batch-Dateien gemacht.

Folgendes Scenario:
Jeder Mitarbeiter bei uns hat auf seinem Home-Dir eine Datei liegen, in der er angibt, welche Pfade aus diesem speziell archiviert werden sollen. Ist für die jenigen, die kein Notebook bekommen, da sie es nur sehr selten benötigen. Die Datei hat dieses Format:

BackupLocations=2
BackupLocation1=d:\foo\bar
BackupLocation2=e:\foobar\unfug

Die Verzeichnisse werden dann jeweils per WinRAR archiviert und auf einen USB-Stick verfrachtet.

Alle meine Versuche schlugen bisher fehl. Ich vermute, dass ich von der Lösung relativ weit weg bin (der berühmte Holzweg).

Würde mich sehr über Eure Lösungen freuen.

MfG
Robert
Mitglied: bastla
20.04.2008 um 20:53 Uhr
Hallo meyerro und willkommen im Forum!

Da Du leider nicht so genau beschreibst, wie die ausgelesenen Pfade konkret verwendet werden sollen, nur ein allgemeines Beispiel:
01.
@echo off & setlocal 
02.
set "Back=H:\BackupLocations.txt" 
03.
for /f "usebackq skip=1 tokens=2 delims==" %%i in ("%Back%") do call :ProcessPath "%%i" 
04.
echo\ 
05.
echo Verarbeitung aller Verzeichnisse beendet. 
06.
goto :eof 
07.
 
08.
:ProcessPath 
09.
echo Verarbeite Verzeichnis %~1 ... 
10.
goto :eof
In das Unterprogramm ":ProcessPath" kannst Du die für die Verarbeitung eines einzelnen Verzeichnisses erforderlichen Befehle schreiben, wobei das Verzeichnis selbst als "%~1" angesprochen wird.

Die Anzahl der Verzeichnisse wird übrigens nicht ausgelesen (=übersprungen), da ohnehin alle folgenden Zeilen einzeln gelesen und verarbeitet werden.

Grüße
bastla
Bitte warten ..
Mitglied: meyerro
20.04.2008 um 21:09 Uhr
Mein Gott, bin ich weit weg gewesen. Viel zu kompliziert gedacht. Dein Batch ist ein Volltreffer. Danke
Bitte warten ..
Mitglied: Biber
21.04.2008 um 09:36 Uhr
Moin meyerro und bastla,

kleiner Änderungsvorschlag.
Die Mimik, die erste Zeile unbesehen zu überspringen und alle folgenden Zeilen als gewollte Backup-Pfade zu interpretieren bringt - ja, auch einem Batch- einige meiner Nackenhärchen zum Senkrechtstehen.

Es kann nach meinem schnipsel-ästhetischen Empfinden weder sein, dass
  • Kommentare oder Bedienanweisungen in einer *.ini-Datei so implizit unmöglich gemacht werden
  • oben in der Anzahl-Zeile stehen kann: "BackupLocations=2" und dennoch werden danach 27 BackupLocation-Pfad-Zeilen abgearbeitet statt 2.

Die Abhängigkeit von der BackupLocation-Anzahl-Zeile und den Pfad-Zeilen ließe sich sinngemäß so abbilden:
01.
:: ---snipp BackupLocaotions.bat 
02.
@FOR %%b in ("E:Work\BackupLocations.txt") do @if exist "%%~b" @( 
03.
  FOR /F "tokens=2 delims==" %%i in ('findstr /i /b "BackupLocations" "%%~b"') DO @( 
04.
    FOR /L %%j in (1,1, %%i) DO @( 
05.
      FOR /f "tokens=2 delims==" %%k in ('findstr /i /b "BackupLocation%%j" "%%~b"') DO @echo winrar...%%k 
06.
 )))
Dieser Batch würde abhängig von der zuerst ausgelesenen "BackupLocations=2"-Zeile die "Backuplocation1" und "BackupLocation2" -Angaben rausflöhen.
Auch wenn die Gesamt-Ini-Datei so aussieht:
01.
; BackupLocations.txt   
02.
## Wird bei der Archivierung der Notebook-MitarbeiterInnen-Dateien benutzt. 
03.
## Format: 
04.
## BackupLocations=n  --- gibt an, wieviele Pfade gesichert werden sollen 
05.
## BackupLocations=4 wird interpretiert als "Archiviere BackupLocation1...BackupLocation4 
06.
BackupLocations=2 
07.
BackupLocation1=d:\foo\bar 
08.
# Kommentar zu BackupLocation1= Projektpläne 
09.
BackupLocation2=e:\foobar\unfug 
10.
## ------- Ende der aktuell zu archivierenden Ordner 
11.
BackupLocation3=e:\foobar\optional 
12.
BackupLocation4=e:\nochleer
Grüße
Biber
Bitte warten ..
Mitglied: bastla
21.04.2008 um 14:19 Uhr
@Biber
Da muss ich Dir nun leider einmal mehr Recht geben: meinen obigen Kommentar hätte ich mir besser sparen sollen ...
Zu Deinem Entwurf noch eine Anmerkung: Wenn Du "findstr" jeweils ohne "/b" (bzw ohne "^" am Beginn des Suchbegriffes) verwendest, musst Du hoffen, dass die "BackupLocations.txt" nicht etwa so aussieht:
01.
; BackupLocations.txt   
02.
## Wird bei der Archivierung der Notebook-MitarbeiterInnen-Dateien benutzt. 
03.
BackupLocations=2 
04.
## Format: 
05.
## BackupLocations=n  --- gibt an, wieviele Pfade gesichert werden sollen 
06.
## BackupLocations=4 wird interpretiert als "Archiviere BackupLocation1...BackupLocation4 
07.
BackupLocation1=d:\foo\bar 
08.
# Kommentar zu BackupLocation1= Projektpläne 
09.
## BackupLocation2=e:\foobar\unfug 
10.
## ------- Ende der aktuell zu archivierenden Ordner 
11.
BackupLocation3=e:\foobar\optional 
12.
BackupLocation4=e:\nochleer
Grüße
bastla
Bitte warten ..
Mitglied: Biber
21.04.2008 um 14:45 Uhr
<lach> ...touche, bastla,

das kommt von meinem ständigen Nicht-Testen...

Ich füge mal (immer noch ungetestet, aber voller Vertrauen in Dein geschultes Auge) ein oder zwei "/b"s oben ein.

Danke und Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Variable aus VBS in Batch einlesen
gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Batch & Shell

Powershell intelligent Variablen einlesen

Frage von PinkFLuffyUnicornBatch & Shell5 Kommentare

Hi, ich habe folgendes Problem: Ich hzabe eine Textdatei aus welcher ich gerne zeilenweise variablen auslesen und in einer ...

Batch & Shell

Powershell - zeilenweise Variablen aus TXT Datei einlesen

gelöst Frage von adm2015Batch & Shell12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte meinen alten Batch Code in Powershell verwenden und finde keinen passenden Lösungsansatz. ...

VB for Applications

Datei mit variablem Namen einlesen und als Excel speichern

gelöst Frage von AnrionVB for Applications1 Kommentar

Hallo Forum, Ich habe ein Problem. -Es muss eine Datei (CLV) eingelesen werden. Öffne ich diese in Excel, so ...

Neue Wissensbeiträge
Router & Routing

Endlich: Reines Kabel-TV Modem in D erhältlich !

Information von aqui vor 1 TagRouter & Routing9 Kommentare

Mit dem Technicolor TC4400-EU Modem sind nun auch Breitband Router ohne integriertes Modem oder Firewalls wie z.B. die pfSense ...

Netzwerkgrundlagen
The Illustrated TLS Connection
Information von Lochkartenstanzer vor 2 TagenNetzwerkgrundlagen

Moin, Unter findet man eine gelungene Erläuterung von TLS. Fördert sehr das verständnis darüber, was da passiert. lks

Windows 10

Zuverlässiger Remove-AppxProvisionedPackage Ausführen in W10-1803

Tipp von NetzwerkDude vor 4 TagenWindows 104 Kommentare

Moin, Remove-AppxProvisionedPackage hat in 1709 recht zuverlässig funktioniert, in 1803 ist es leider so das es gerne mail failed ...

LAN, WAN, Wireless
Erfahrung mit dem tplink eap115-wall
Erfahrungsbericht von fisi-pjm vor 4 TagenLAN, WAN, Wireless

Die Hintergründe Als ausgebildeter Fisi und ambitionierter "Hobby ITler" bin ich Netzwerktechnisch immer auf der Suche nach "schönen" Lösungen ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerklaufwerk verbinden nicht möglich
gelöst Frage von SteiniMNetzwerkmanagement13 Kommentare

Hallo Leute, ich bin neu hier und brauche eure Hilfe. Danke schon mal im Voraus. Ich habe folgendes Problem: ...

Apache Server
Webserver überlastet - wie entlasten?
Frage von coltseaversApache Server13 Kommentare

Hi ho, ich hoste aktuell für nen Kunden eine Webseite basierend auf Wordpress. Die Seite liegt auf einem Debian ...

Windows Server
AD User wird immer wieder gesperrt
Frage von YellowcakeWindows Server12 Kommentare

Hey ich habe einen User (ein GL User - Natürlich was denn sonst) der immer wieder gesperrt wird. Ich ...

Netzwerkprotokolle
OpenVPN auf dem Client Verständnisfrage
gelöst Frage von bk900042Netzwerkprotokolle11 Kommentare

Hallo Community, möchte OpenVPN benutzen, um mich über VPN per RDP zu einem Server zu verbinden und auch GIT ...