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
GELÖST

Batchfile FOR

Frage Entwicklung Batch & Shell

Mitglied: FELLINGA09

FELLINGA09 (Level 1) - Jetzt verbinden

14.02.2012, aktualisiert 15.02.2012, 2501 Aufrufe, 5 Kommentare

Guten Abend,

ich hab da ein Problem mit einem Batchfile...

Erklärung:
Ich habe eine Sicherung.ini Datei mit folgendem Inhalt: (der Aufbau muss leider so sein!!!)

Musik=C:\Program Files\Musik
Video=C:\film\Video
Bilder=C:\Hugo\Bilder

Nun möchte ich in einer Batch das ganze auslesen und per robocopy wegsichern.
Das ganze wollte ich mit FOR lösen, nur fehlt mir irgendwo noch die Lösung.
Einzeln auslesen funktioniert ja super..:

01.
for /F "tokens=1 delims==" %%i IN (Sicherung.ini) do ( 
02.
echo %%i 
03.
)
%%i ergibt folgendes:

Musik
Video
Bilder


01.
for /F "tokens=2 delims==" %%g IN (Sicherung.ini) do ( 
02.
echo %%g 
03.
)
%%g ergibt folgendes:

C:\Program Files\Musik
C:\film\Video
C:\Hugo\Bilder

Jetzt müsste ich mit diesen Daten in der Batch natürlich irgendwo weiter machen, und genau da stehe ich...
Eigentlich wäre mir eine Lösung ala:

robocopy "%%g" "C:\Save\%%i" /MIR

am liebsten. Nur kann ich ja nicht beide Parameter in einem FOR verwenden, oder?
Das Ergebnis sollte dann natürlich folgendes sein:

"C:\Program Files\Musik" wird nach "C:\Save\Musik" gesichtert
"C:\film\Video" wird nach "C:\Save\Video" gesichtert
"C:\Hugo\Bilder" wird nach "C:\Save\Bilder" gesichtert


Würde mich über jeden Tipp freuen, die Sicherung.ini darf allerdings, wie bereits erwähnt, nicht verändert werden und es muss per *.bat oder *.cmd erledigt werden!!


Danke



Eine Frage hätte ich noch!
Kann ich mit nem Batch sektions auslesen?
Also wenn die SIcherungs ini z.B. so aussehen würde:

[Test]
1=Ding
2=Dong

[Ordner]
Musik=C:\Program Files\Musik
Video=C:\film\Video
Bilder=C:\Hugo\Bilder
Mitglied: 60730
15.02.2012 um 00:42 Uhr
moin,

kannst du bitte deine Zeilen mithilfe der Formatierungshilfe verhybschen?

Apropos "Hilfe"...
for /F "tokens=1,2 delims==" %a in (Sicherung.ini) Do echo %a--%b
Und zu deiner Zusatzfrage - theoretisch möglich ist das, praktisch gäbe es da ein Problem....
Ich habe eine Sicherung.ini Datei mit folgendem Inhalt: (der Aufbau muss leider so sein!!!) 
 
Musik=C:\Program Files\Musik 
Video=C:\film\Video 
Bilder=C:\Hugo\Bilder 
 
die Sicherung.ini darf allerdings, wie bereits erwähnt, nicht verändert werden.
Gruß
Bitte warten ..
Mitglied: rubberman
15.02.2012 um 02:02 Uhr
Hallo FELLINGA09,

Batch ist ungeeignet um INI Dateien sicher zu parsen.
Laaangsaaames Workaround:
01.
@echo off &setlocal 
02.
 
03.
:: Settings 
04.
set "ini=Sicherung.ini" 
05.
set "section=Ordner" 
06.
 
07.
:: Werte lesen 
08.
set "key=Musik" 
09.
call :readINI 
10.
echo %foundKey% - %foundVal% 
11.
 
12.
set "key=Video" 
13.
call :readINI 
14.
echo %foundKey% - %foundVal% 
15.
 
16.
pause 
17.
goto :eof 
18.
 
19.
::::::::::::::::::::::::::::::::::::::::: 
20.
 
21.
:readINI 
22.
for /l %%i in (1 1 4) do set "n%%i=" 
23.
set "line="&set "foundKey="&set "foundVal=" 
24.
 
25.
:: existiert die Datei? 
26.
if not exist "%ini%" echo [error] &goto :eof 
27.
 
28.
:: wie viele Zeilen hat die Datei? 
29.
for /f %%i in ('type "%ini%"^|find /c /v ""') do set /a n1=%%i 
30.
if not defined n1 echo [error] &goto :eof 
31.
 
32.
:: in welcher Zeile fängt die Sektion an? 
33.
for /f "delims=:" %%i in ('type "%ini%"^|findstr /nbc:"[%section%]"') do if not defined n2 set /a n2=%%i 
34.
if not defined n2 echo [error] &goto :eof 
35.
 
36.
:: wo findet sich die nächste Sektion? 
37.
for /f "delims=:" %%i in ('^<"%ini%" more +%n2%^|findstr /rnbc:"\[..*\]"') do if not defined n3 set /a n3=%%i 
38.
if not defined n3 set /a n3=n1-n2 
39.
 
40.
:: wo findet sich der Schlüssel? 
41.
for /f "delims=:" %%i in ('^<"%ini%" more +%n2%^|findstr /nbc:"%key%="') do ( 
42.
  if not defined n4 ( 
43.
    if %%i leq %n3% set /a n4=%%i+n2 
44.
45.
46.
if not defined n4 echo [error] &goto :eof 
47.
 
48.
:: über die INI iterieren 
49.
<"%ini%" ( 
50.
  for /l %%i in (1 1 %n4%) do ( 
51.
    set /p "line=" 
52.
53.
54.
55.
for /f "tokens=1* delims==" %%i in ("%line%") do (set "foundKey=%%i"&set "foundVal=%%j") 
56.
goto :eof
Grüße
rubberman
Bitte warten ..
Mitglied: FELLINGA09
15.02.2012 um 08:08 Uhr
Danke TimoBeil!

mit:
01.
@echo off 
02.
set "extsich=C:\Save" 
03.
 
04.
for /F "tokens=1,2 delims==" %%i IN (Sicherung.ini) do ( 
05.
robocopy "%%j" "%extsich%\%%i" /mir 
06.
)
Funktionierts perfekt!!!
Bitte warten ..
Mitglied: FELLINGA09
15.02.2012 um 08:11 Uhr
Dankeschön..das muss ich heute mal genauer unter die Lupe nehmen!!
Bitte warten ..
Mitglied: Skyemugen
15.02.2012 um 08:48 Uhr
Aloha,

und wenn du schon etwas genauer unter die Lupe nimmst, dann bitte auch unsere Formatierungshilfe (link) bezüglich <code></code> Formatierung.

Danke!

greetz André

ja, kann man auch im Nachhinein editieren
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...