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

Geschachtelte For Schleife Variable weiter benutzen

Frage Entwicklung Batch & Shell

Mitglied: seb1212

seb1212 (Level 1) - Jetzt verbinden

20.02.2015, aktualisiert 11:26 Uhr, 563 Aufrufe, 4 Kommentare

Hallo zusammen,

ich habe ein kleines Problem, im untenstehenden Code hat die Variable %Datum% in Zeile 13 leider keinen wert.

Kann mir jmd sagen wo das Problem liegt?

Ich habe alle Pfade due %Pfad% ersetzt da euch ja sicher nicht interessiert wo ich meine Dateien liegen habe ;)

01.
  
02.
@echo off 
03.
 
04.
SETLOCAL ENABLEDELAYEDEXPANSION 
05.
::Prüfen ob Benutzer zum berechtigen vorhanden sind 
06.
 
07.
if not exist %Pfad% goto Ende 
08.
 
09.
::Datei auslesen, Benutzer Vollzugriff geben, Benutzername in Datei mit Datum von Heute eintragen 
10.
 
11.
for /f %%i in (%Pfad%) do ( 
12.
for /f %%m in ('powershell.exe -command Get-Date -format ddMMyyyy') do set Datum=%%m 
13.
echo %%i>>%Pfad%\%Datum%.log 
14.
icacls P:\ /e /t /c /q /inheritance:r /grant %%i:(OI^)(CI^)(F^) 
15.
16.
pause 
17.
::%Pfad% 
18.
 
19.
:Ende 
20.
ENDLOCAL 
21.
 
22.
 

Besten Dank

Seb1212
Mitglied: 114757
20.02.2015, aktualisiert um 10:26 Uhr
Stichwort delayed expansion und Anführungszeichen !
echo %%i>>%Pfad%\!Datum!.log
Gruß jodel32

p.s. das Datum bekommst du auch so:
echo %date:~0,2%%date:~3,2%%date:~6,4%
Bitte warten ..
Mitglied: seb1212
20.02.2015, aktualisiert um 10:34 Uhr
Hi,

erstmal vielen Dank für deine Hilfe!

ja so bekommt man das Datum auch, das Problem ist das das Script auf nem Deutschsprachigem und nem Englischsprachigem Client läuft. Und es da mit der unterschiedlichen Datumskonvertierung brocken gab.


So zum eigentlich Problem,

Jetzt heißt die Datei leider !Datum!.log


Gruß
Bitte warten ..
Mitglied: 114757
LÖSUNG 20.02.2015, aktualisiert um 11:42 Uhr
Zitat von seb1212:
Jetzt heißt die Datei leider !Datum!.log
Muss aber gehen, wenn das auftritt ist die Variable leer bzw wird nicht richtig gefüllt (ExecutionPolicy beachtet ?), machs besser so:
01.
for /f "tokens=*" %%m in ('powershell.exe -ExecutionPolicy ByPass -command Get-Date -format ddMMyyyy') do set "Datum=%%m" 
02.
echo !Datum!
geht einwandfrei ..

und hier solltest du es auch so machen:
01.
for /f "usebackq tokens=* delims=" %%i in ("%Pfad%") do
Bitte warten ..
Mitglied: seb1212
20.02.2015 um 11:27 Uhr
Besten Dank, Funkt einwandfrei.

Schönes Wochenende
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell - Werte in Variable durch Schleife erweitern bzw. ändern (5)

Frage von ralfkausk zum Thema Batch & Shell ...

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

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

Windows Update
gelöst WSUS Produkte weiter einschränken (11)

Frage von thaefliger zum Thema Windows Update ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...