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

Frage Entwicklung Batch & Shell

Mitglied: meyerro

meyerro (Level 1) - Jetzt verbinden

20.04.2008, aktualisiert 21.04.2008, 3735 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
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
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 - 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
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 5 StundenWindows 101 Kommentar

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 7 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 21 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte15 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...