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

Die gerade verwendete Zeile löschen

Frage Entwicklung Batch & Shell

Mitglied: aivilon

aivilon (Level 1) - Jetzt verbinden

07.06.2012 um 10:22 Uhr, 2529 Aufrufe, 12 Kommentare

Hallo zusammen

Zu meinem Problem

Ich habe ein Script, welches in einem CSV nach dem Servernamen sucht. Dies wird mittels For Schleife gemacht. Diese geht ja bekanntlicherweise von unten nach oben um einen String zu suchen.
Nachdem der Servername gefunden wurde, werden die einzelnen angaben "eingelesen".
Da das Script nun einen Loop machen muss (bis der Servername nicht mehr vorhanden ist) muss ich jetzt diese Zeile, die ich gerade auch verwendet habe, löschen. NUR diese.
Wie mach ich das nun am Besten?


Der Aufbau des CSVs sieht wie folgt aus:

Server1;21.12.2012;12:00;Programm1;\\Server\Software$\Software\Source
Server1;21.12.2012;12:00;Programm2;\\Server\Software$\Software\Source2
Server1;21.12.2012;12:00;Programm3;\\Server\Software$\Software\Source1
Server2;21.12.2012;12:00;Programm1;\\Server\Software$\Software\Source
Server2;21.12.2012;12:00;Programm2;\\Server\Software$\Software\Source2



Grüsse
Aivilon
Mitglied: bastla
07.06.2012, aktualisiert um 11:10 Uhr
Hallo aivilon!
Ich habe ein Script, welches in einem CSV nach dem Servernamen sucht. Dies wird mittels For Schleife gemacht.
Warum nicht per "findstr" (damit ließe sich auch das Löschen erledigen)?
Diese geht ja bekanntlicherweise von unten nach oben um einen String zu suchen.
???
Magst Du nicht einfach kurz beschreiben, was der Batch tatsächlich leisten soll?

Grüße
bastla
Bitte warten ..
Mitglied: aivilon
07.06.2012, aktualisiert um 11:16 Uhr
Hallo Bastla

Jap, sorry, zu wenig geschrieben. Den findstr hab ich drin:
01.
for /f "tokens=1-5 delims=%Delim%" %%a in ('findstr /b /i /c:"%Host%%Delim%" "%srvList%"') do ( 
02.
	set "srvName=%%a" 
03.
	set "srvDate=%%b" 
04.
	set "srvTime=%%c 
05.
	set "srvSoft=%%d" 
06.
	set "srvPath=%%e" 
07.
)
Aber eben. Der Teil des Scripts funktioniert. Jetzt zum Aber, respektive zu dem, was das Script noch leisten soll:
Der obige Code sucht als erstes in einem CSV nach dem Inhalt der Variablen. Danach werden einige Sachen ausgeführt (spielen in meinem Problem keine Rolle). Nun soll die Zeile, welche gerade verwendet wurde, gelöscht werden.

Also von so:
Server1;21.12.2012;12:00;Programm1;\\Server\Software$\Software\Source
Server1;21.12.2012;12:00;Programm2;\\Server\Software$\Software\Source2
Server1;21.12.2012;12:00;Programm3;\\Server\Software$\Software\Source1
Server2;21.12.2012;12:00;Programm1;\\Server\Software$\Software\Source
Server2;21.12.2012;12:00;Programm2;\\Server\Software$\Software\Source2

Nach so:
Server1;21.12.2012;12:00;Programm1;\\Server\Software$\Software\Source
Server1;21.12.2012;12:00;Programm2;\\Server\Software$\Software\Source2
Server2;21.12.2012;12:00;Programm1;\\Server\Software$\Software\Source
Server2;21.12.2012;12:00;Programm2;\\Server\Software$\Software\Source2

(dritte Zeile wurde hier jetzt gelöscht. Die erste, welche auf dem Server1 ausgeführt wurde)
Bitte warten ..
Mitglied: bastla
07.06.2012, aktualisiert um 14:40 Uhr
Hallo aivilon!

Wozu löschen bzw wozu einzelne Zeilen löschen? Wenn schon sollte es doch genügen, alle Zeilen für einen bestimmten Server am Stück zu löschen, also etwa:
01.
move "%srvList%" "%temp%\srvList" 
02.
findstr /vbic:"%Host%%Delim%" "%temp%\srvList">"%srvList%"
Falls aber wirklich jede einzelne Zeile weg soll, könntest Du vorweg die gesamte Zeile einlesen, dann erst zerlegen und dann die Zeile als Suchbegriff verwenden - ungetestet:
01.
for /f "delims=" %%i in ('findstr /bic:"%Host%%Delim%" "%srvList%"') do ( 
02.
    for /f "tokens=1-5 delims=%Delim%" %%a in ("%%i") do ( 
03.
        set "srvName=%%a" 
04.
        set "srvDate=%%b" 
05.
        set "srvTime=%%c 
06.
        set "srvSoft=%%d" 
07.
        set "srvPath=%%e" 
08.
09.
    REM Verarbeitung 
10.
    REM 
11.
    REM Verarbeitung Ende 
12.
    move "%srvList%" "%temp%\srvList" 
13.
    findstr /vxc:"%%i" "%temp%\srvList">"%srvList%" 
14.
)
BTW: Wozu werden eigentlich die "Tokens" Variablen zugewiesen?

Grüße
bastla
Bitte warten ..
Mitglied: aivilon
07.06.2012 um 15:06 Uhr
Zitat von bastla:
Hallo aivilon!

Wozu löschen bzw wozu einzelne Zeilen löschen? Wenn schon sollte es doch genügen, alle Zeilen für einen
bestimmten Server am Stück zu löschen, also etwa:

Wie erwähnt. Dazwischen findet noch was statt (siehe code am ende des Posts)

Falls aber wirklich jede einzelne Zeile weg soll, könntest Du vorweg die gesamte Zeile einlesen, dann erst zerlegen und dann
die Zeile als Suchbegriff verwenden - ungetestet:

Hmm...versucht, geht ned. Habs jetzt auf nem anderen weg versucht, aber ich glaub das ist so nicht möglich (siehe code am Ende des Posts)

BTW: Wozu werden eigentlich die "Tokens" Variablen zugewiesen?

Das ist ein alter Codeschnippsel von mir. Den hatte ich damals von irgend ner Seite...eigentlich total unnötig ich weiss.

Ich hab mal versucht, alles in die For Schleife zu nehmen...
Code:
01.
@echo off & setlocal 
02.
set "DeployPath=\\[SERVER]\Software$\" 
03.
set "SoftCSV= 
04.
 
05.
set "srvList=%DeployPath%\Software\installsoft.csv" 
06.
set "Delim=;" 
07.
set "Host=%computername%" 
08.
 
09.
echo . >> %DeployPath%\Log\Log.log 
10.
 
11.
:loop 
12.
 
13.
set srvName= 
14.
for /f "tokens=1-5 delims=%Delim%" %%a in ('findstr /b /i /c:"%Host%%Delim%" "%srvList%"') do ( 
15.
	set "srvName=%%a" 
16.
	set "srvDate=%%b" 
17.
	set "srvTime=%%c" 
18.
	set "srvSoft=%%d" 
19.
	set "srvPath=%%e" 
20.
 
21.
 
22.
 
23.
 
24.
	echo 1. %srvName%  2. %Host% 
25.
	If ."%srvName%"==."%Host%" goto maketask 
26.
	if not ."%srvName%"==."%Host%" goto Endofdeploy 
27.
	 
28.
	:maketask 
29.
	REM echo 1.) %srvDate%  2.) %srvTime% 
30.
	if %srvDate%==0 set srvDate=%date% 
31.
	if %srvTime%==0 set srvTime=%time% 
32.
	REM echo 1.) %srvDate%  2.) %srvTime% 
33.
	for /f "tokens=1-4 delims=:., " %%a in ("%srvTime%") do set srvTime=%%a:%%b:00 
34.
	 
35.
	for /F "tokens=1,2,3 delims=., " %%A in ("%srvDate%") do ( 
36.
		Set Month=%%A 
37.
		Set Day=%%B 
38.
		Set Year=%%C 
39.
		SET srvDate=%%B/%%A/%%C 
40.
41.
	REM echo 1.) %Month%  2.) %Day% 
42.
	if %Month%==0* do ( 
43.
		set Month=%Month:~1,1% 
44.
45.
	if %Day%==0* do ( 
46.
		set Day=%Day:~1,1% 
47.
48.
	REM echo 1.) %Month%  2.) %Day% 
49.
	REM echo .%srvSoft%. 
50.
	REM echo .%srvDate%. 
51.
	REM echo .%srvTime%. 
52.
	 
53.
	schtasks /create /TN "SoftwareUpdate\%srvSoft%" /tr %srvPath%\%srvSoft%.msi /SC ONCE /ST %srvTime% /sd %srvDate% 
54.
 
55.
 
56.
	ECHO. >> %DeployPath%\Log\Log.log 
57.
	ECHO Task wurde erstellt: >> %DeployPath%\Log\Log.log 
58.
	ECHO schtasks /create /TN "SoftwareUpdate\%srvSoft%" /tr %srvPath%\%srvSoft%.msi /SC ONCE /ST %srvTime% /sd %srvDate% >> %DeployPath%\Log\Log.log 
59.
	ECHO Programm: %srvSoft% >> %DeployPath%\Log\Log.log 
60.
	ECHO Datum und Zeit: %srvDate%, %srvTime% >> %DeployPath%\Log\Log.log 
61.
	ECHO Task ist unter: SoftwareUpdate\%srvSoft% zu finden >> %DeployPath%\Log\Log.log 
62.
	 
63.
		findstr /v /b /i /c:"%%a" "%srvList%" > %srvList% 
64.
)	 
65.
Goto Loop 
66.
 
67.
 
68.
ECHO Log vom: %Date% um %time% >> %DeployPath%\Log\Log.log 
69.
ECHO ######################### >> %DeployPath%\Log\Log.log 
70.
ECHO. >> %DeployPath%\Log\Log.log 
71.
 
72.
Exit 
73.
 
74.
 
75.
:Endofdeploy 
76.
ECHO Log vom: %Date% um %time% >>  %DeployPath%\Log\Log.log 
77.
ECHO Es gibt keine/keine weitere zu installierende Software für %Host% >> %DeployPath%\Log\Log.log 
78.
ECHO ######################### >>  %DeployPath%\Log\Log.log 
79.
ECHO. >> %DeployPath%\Log\Log.log 
80.
 
81.
Exit

Grüsse
aivilon
Bitte warten ..
Mitglied: bastla
07.06.2012, aktualisiert um 15:36 Uhr
Hallo aivilon!

Würde ich eher so versuchen (ungetestet):
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "DeployPath=\\[SERVER]\Software$\" 
03.
set "SoftCSV= 
04.
 
05.
set "srvList=%DeployPath%\Software\installsoft.csv" 
06.
set "Delim=;" 
07.
set "Host=%computername%" 
08.
set "Log=%DeployPath%\Log\Log.log" 
09.
 
10.
>>"%Log%" echo. 
11.
for /f "tokens=1-5 delims=%Delim%" %%a in ('findstr /b /i /c:"%Host%%Delim%" "%srvList%"') do ( 
12.
 
13.
	set "srvName=%%a" 
14.
	set "srvDate=%%b" 
15.
	set "srvTime=%%c" 
16.
	set "srvSoft=%%d" 
17.
	set "srvPath=%%e" 
18.
 
19.
	echo 1. !srvName!  2. %Host% 
20.
	REM echo 1.) !srvDate!  2.) !srvTime! 
21.
	if !srvDate!==0 set "srvDate=!date!" 
22.
	if !srvTime!==0 set "srvTime=!time!" 
23.
	REM echo 1.) !srvDate!  2.) !srvTime! 
24.
	for /f "tokens=1-4 delims=:., " %%i in ("!srvTime!") do set srvTime=%%i:%%j:00 
25.
	for /F "tokens=1,2,3 delims=., " %%i in ("!srvDate!") do ( 
26.
		Set "Month=%%i" 
27.
		Set "Day=%%j" 
28.
		Set "Year=%%k" 
29.
		SET "srvDate=%%j/%%i/%%k" 
30.
31.
	REM echo 1.) %Month%  2.) %Day% 
32.
	if !Month:~,1!==0 set "Month=!Month:~1,1!" 
33.
	if !Day:~,1!==0 set "Day=!Day:~1,1!" 
34.
	REM echo 1.) %Month%  2.) %Day% 
35.
	REM echo .!srvSoft!. 
36.
	REM echo .!srvDate!. 
37.
	REM echo .!srvTime!. 
38.
	 
39.
	schtasks /create /TN "SoftwareUpdate\!srvSoft!" /tr !srvPath!\!srvSoft!.msi /SC ONCE /ST !srvTime! /sd !srvDate! 
40.
 
41.
	>>"%Log%" ECHO. 
42.
	>>"%Log%" ECHO Task wurde erstellt: 
43.
	>>"%Log%" ECHO schtasks /create /TN "SoftwareUpdate\!srvSoft!" /tr !srvPath!\!srvSoft!.msi /SC ONCE /ST !srvTime! /sd !srvDate! 
44.
	>>"%Log%" ECHO Programm: !srvSoft! 
45.
	>>"%Log%" ECHO Datum und Zeit: !srvDate!, !srvTime! 
46.
	>>"%Log%" ECHO Task ist unter: SoftwareUpdate\!srvSoft! zu finden 
47.
 
48.
49.
 
50.
move "%srvList%" "%temp%\srvList" 
51.
findstr /vbic:"%Host%%Delim%" "%temp%\srvList"">"%srvList%" 
52.
 
53.
>>"%Log%" ECHO Log vom: %Date% um %time% 
54.
>>"%Log%" ECHO ######################### 
55.
>>"%Log%" ECHO. 
56.
Exit
Falls Dir der Eintrag
Es gibt keine zu installierende Software für %Host%
wichtig sein sollte, kannst Du vor Zeile 11 einfügen:
findstr /bic:"%Host%%Delim%" "%srvList%">nul||>>"%Log%" ECHO Es gibt keine zu installierende Software für %Host%
Grüße
bastla
Bitte warten ..
Mitglied: aivilon
07.06.2012, aktualisiert um 16:47 Uhr
EDIT
Code zum Löschen der Zeilen nochmals angepasst. Jetzt funktionierts wirklich!


Hallo Bastla

Vielen Dank, aber hab auch gerade was gefunden. Glaube mein Code ist fast noch angenehmer. Ich wechsle bei jedem Durchlauf in der For-Schleife in den Prozess. Nach dem Prozess wechsle ich mittels goto :EOF wieder in die For-Schleife und der nächste durchlauf wird ausgeführt. Bis alle durch sind.
Am Ende wird das CSV gesäubert. Mittels deinem Script-Schnipsel von weiter oben.

Code:
01.
@echo off & setlocal 
02.
set "DeployPath=\\[SERVER]\Software$\" 
03.
set "SoftCSV= 
04.
 
05.
set "srvList=%DeployPath%\Software\installsoft.csv" 
06.
set "Delim=;" 
07.
set "Host=%computername%" 
08.
 
09.
echo . >> %DeployPath%\Log\Log.log 
10.
 
11.
 
12.
set srvName= 
13.
for /f "tokens=1-5 delims=%Delim%" %%a in ('findstr /b /i /c:"%Host%%Delim%" "%srvList%"') do ( 
14.
	set "srvName=%%a" 
15.
	set "srvDate=%%b" 
16.
	set "srvTime=%%c" 
17.
	set "srvSoft=%%d" 
18.
	set "srvPath=%%e" 
19.
	call :prozess 
20.
21.
 
22.
goto Endofdeploy 
23.
 
24.
 
25.
:prozess 
26.
	echo 1. %srvName%  2. %Host% 
27.
	If ."%srvName%"==."%Host%" goto maketask 
28.
	if not ."%srvName%"==."%Host%" goto Endofdeploy 
29.
	 
30.
	:maketask 
31.
	REM echo 1.) %srvDate%  2.) %srvTime% 
32.
	if %srvDate%==0 set srvDate=%date% 
33.
	if %srvTime%==0 set srvTime=%time% 
34.
	REM echo 1.) %srvDate%  2.) %srvTime% 
35.
	for /f "tokens=1-4 delims=:., " %%a in ("%srvTime%") do set srvTime=%%a:%%b:00 
36.
	 
37.
	for /F "tokens=1,2,3 delims=., " %%A in ("%srvDate%") do ( 
38.
		Set Month=%%A 
39.
		Set Day=%%B 
40.
		Set Year=%%C 
41.
		SET srvDate=%%B/%%A/%%C 
42.
43.
	REM echo 1.) %Month%  2.) %Day% 
44.
	if %Month%==0* do ( 
45.
		set Month=%Month:~1,1% 
46.
47.
	if %Day%==0* do ( 
48.
		set Day=%Day:~1,1% 
49.
50.
	REM echo 1.) %Month%  2.) %Day% 
51.
	REM echo .%srvSoft%. 
52.
	REM echo .%srvDate%. 
53.
	REM echo .%srvTime%. 
54.
	 
55.
	schtasks /create /TN "SoftwareUpdate\%srvSoft%" /tr %srvPath%\%srvSoft%.msi /SC ONCE /ST %srvTime% /sd %srvDate% 
56.
 
57.
 
58.
	ECHO. >> %DeployPath%\Log\Log.log 
59.
	ECHO Task wurde erstellt: >> %DeployPath%\Log\Log.log 
60.
	ECHO schtasks /create /TN "SoftwareUpdate\%srvSoft%" /tr %srvPath%\%srvSoft%.msi /SC ONCE /ST %srvTime% /sd %srvDate% >> %DeployPath%\Log\Log.log 
61.
	ECHO Programm: %srvSoft% >> %DeployPath%\Log\Log.log 
62.
	ECHO Datum und Zeit: %srvDate%, %srvTime% >> %DeployPath%\Log\Log.log 
63.
	ECHO Task ist unter: SoftwareUpdate\%srvSoft% zu finden >> %DeployPath%\Log\Log.log 
64.
	 
65.
	copy "%DeployPath%\Software\%srvList%" "%Temp%\installsoft.csv" 
66.
	findstr /vbic:"%Host%" "%srvList%" > "%temp%\installsoft.csv" 
67.
	move "%Temp%\installsoft.csv" "%srvList%" 
68.
 
69.
GOTO:EOF 
70.
 
71.
 
72.
:Endofdeploy 
73.
ECHO Log vom: %Date% um %time% >>  %DeployPath%\Log\Log.log 
74.
ECHO Es gibt keine/keine weitere zu installierende Software für %Host% >> %DeployPath%\Log\Log.log 
75.
ECHO ######################### >>  %DeployPath%\Log\Log.log 
76.
ECHO. >> %DeployPath%\Log\Log.log 
77.
 
78.
Exit

OK. Das Löschen funktioniert doch noch nicht ganz wie gewünscht. hatte ein fehler drinn darum hatte es so ausgesehen als hätte es gestummen.
Bitte warten ..
Mitglied: bastla
07.06.2012, aktualisiert um 16:34 Uhr
Hallo aivilon!

Ist natürlich auch eine Möglichkeit ...

Die Zeile 67 ist übrigens nicht nur überflüssig, sondern kontraproduktiv.

BTW: Die Zeilen 44 und 47 haben bisher auch nur darum zu keinem Fehler (wegen des enthaltenen "do") geführt, weil die Abfragen ohnehin nicht so funktioniert, wie Du es vermutlich vorhattest, und die Zeile 28 dürfte eigentlich nur dann zu einem Sprung führen, wenn aufgrund von Unterschieden durch Groß-/Kleinschreibung die Abfrage in der Zeile 27 nicht funktioniert (ansonsten muss immer %srvName% mit "%host% übereinstimmen, da ansonsten die Zeile gar nicht erst gefunden/die Schleife nicht durchlaufen worden wäre ...

Grüße
bastla
Bitte warten ..
Mitglied: aivilon
07.06.2012 um 16:53 Uhr
Zitat von bastla:
Hallo aivilon!

Ist natürlich auch eine Möglichkeit ...

Die Zeile 67 ist übrigens nicht nur überflüssig, sondern kontraproduktiv.

Habs jetzt nochmals geändert. Nun gehts. Vorhin hats mich getäuscht, da es immer das alte file aus dem Temp kopiert hat. Und da ich nur einen Server im csv hatte sah ich den fehler nicht


BTW: Die Zeilen 44 und 47 haben bisher auch nur darum zu keinem Fehler (wegen des enthaltenen "do") geführt,
weil die Abfragen ohnehin nicht so funktioniert, wie Du es vermutlich vorhattest, und die Zeile 28 dürfte eigentlich nur dann

if %Day%==0* set Day=%Day:~1,1%

das wäre glaub richtig oder? Dasselbe mit Time

zu einem Sprung führen, wenn aufgrund von Unterschieden durch Groß-/Kleinschreibung die Abfrage in der Zeile 27 nicht
funktioniert (ansonsten muss immer %srvName% mit "%host% übereinstimmen, da ansonsten die Zeile gar nicht erst
gefunden/die Schleife nicht durchlaufen worden wäre ...

Jop, das mit der Gross klein schreibung muss ich noch machen. aber es geht in meiner arbeit momentan nur um das grundkonzept dafür. muss noch nicht perfekt sein ;)


Grüße
bastla

Nochmal herzlichen Dank für deine Unterstützung! =)
Grüsse
aivilon
Bitte warten ..
Mitglied: bastla
07.06.2012, aktualisiert um 17:04 Uhr
Hallo aivilon!
if %Day%==0* set Day=%Day:~1,1%
Soferne Du damit, wie ich vermute, erreichen willst, dass eine führende Null entfernt wird, schau Dir meinen Ansatz dazu an (Zeile 33) - Deine Abfrage kann so nicht funktionieren, da Wildcards beim Vergleich mit "==" nicht unterstützt werden ...
Jop, das mit der Gross klein schreibung muss ich noch machen.
Das ist zwar nur ein "/i", aber eigentlich sind beide Abfragen unnötig, da ja aufgrund des "findstr" die Schleife ohnehin nur für jene Zeilen durchlaufen wird, an deren Anfang der Inhalt von "%host%" steht (sodass es niemals einen Sprung zu ":Endofdeploy" geben dürfte) ...

Grüße
bastla
Bitte warten ..
Mitglied: aivilon
08.06.2012 um 07:30 Uhr
Zitat von bastla:
Hallo aivilon!
> if %Day%==0* set Day=%Day:~1,1%
Soferne Du damit, wie ich vermute, erreichen willst, dass eine führende Null entfernt wird, schau Dir meinen Ansatz dazu an
(Zeile 33) - Deine Abfrage kann so nicht funktionieren, da Wildcards beim Vergleich mit "==" nicht unterstützt
werden ...

Ja, das hatte ich vor. Ist mir nicht aufgefallen, dass das nicht funktioniert . Habs angepasst.

----
> Jop, das mit der Gross klein schreibung muss ich noch machen.
Das ist zwar nur ein "/i", aber eigentlich sind beide Abfragen unnötig, da ja aufgrund des
"findstr" die Schleife ohnehin nur für jene Zeilen durchlaufen wird, an deren Anfang der Inhalt von
"%host%" steht (sodass es niemals einen Sprung zu ":Endofdeploy" geben dürfte) ...

Ja das schon. Aber nach dem alle Zeilen mit %host% durch sind, müsste er die Schlaufe ja normal verlassen (respektive wird %srvName% leer sein, sodass unter :prozess der Vergleich von if not ."%srvName%*==."%Host%" goto :EOF positiv ausfällt und der :EOF die Schlaufe verlässt. Und danach kommt es zum goto Endofdeploy.

Oder versteh ich da was falsch?

Grüße
bastla

Noch kurz zum Schtasks:
Wie kann ich den Task so setzten, dass der Task mit "Run Wheter User is logged in or not" konfiguriert ist?

Grüsse
aivilon
Bitte warten ..
Mitglied: bastla
08.06.2012 um 12:24 Uhr
Hallo aivilon!
Und danach kommt es zum goto Endofdeploy.
Das ist richtig, aber diesen Sprung hatte ich auch nicht gemeint, sondern nur jenen in Zeile 28 ...
Wie kann ich den Task so setzten, dass der Task mit "Run Wheter User is logged in or not" konfiguriert ist?
Indem Du ihn über das Systemkonto (mit dem Schalter "/RU") ausführen lässt?

Grüße
bastla
Bitte warten ..
Mitglied: aivilon
08.06.2012, aktualisiert um 12:57 Uhr
Zitat von bastla:
Hallo aivilon!
Und danach kommt es zum goto Endofdeploy.
Das ist richtig, aber diesen Sprung hatte ich auch nicht gemeint, sondern nur jenen in Zeile 28 ...

Jep hab ich auch bemerkt. Da haben wir wohl im Endeffekt das selbe gedacht =)

Wie kann ich den Task so setzten, dass der Task mit "Run Wheter User is logged in or not" konfiguriert ist?
Indem Du ihn über das Systemkonto (mit dem Schalter "/RU") ausführen lässt?

Dankschön hat funktioniert =)

Grüße
bastla

Grüsse, Aivilon
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Poweshell Script soll String ersetzen und die leere Zeile löschen (4)

Frage von Mars123 zum Thema Batch & Shell ...

VB for Applications
gelöst Vbscript bestimmte Zeile ungeachtet der Nummerierung löschen (4)

Frage von aletri zum Thema VB for Applications ...

Microsoft Office
Microsoftaccount löschen (2)

Frage von Kroni99 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...