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, 3753 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
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 16 StundenBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 2 TagenHumor (lol)7 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 2 TagenExchange Server8 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 3 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
Windows Server
Server 2016 Autotiering Storage Space
Frage von HenereWindows Server10 Kommentare

Servus, ich habe jetzt ein StorageSpace auf einem Server 2016 in Betrieb zum Testen. 1x M2 mit 512GB (970pro) ...

Hyper-V
Hyper-V keinen Zugriff auf USB Gerät über USB Server
Frage von Barns83Hyper-V10 Kommentare

Normal bin ich ein stiller Leser und wühle mich im normal Fall durch Foren oder schau durch meine Bücher. ...

Netzwerke
SSH - Wieso werde ich nach VPN Verbindung rausgeschmissen?
Frage von VernoxVernaxNetzwerke10 Kommentare

Hallo, ich habe es endlich geschafft mein Handy mit einer VPN Verbindung an meinen Router anzuschließen. Nach der Login ...

Multimedia
Live TV mit Raspberry
Frage von honeybeeMultimedia9 Kommentare

Hallo, ich bin relativ neu im Umgang mit Raspberry und habe folgendes Problem: Ich habe keinen Fernsehanschluss über Kabel ...