Opgelost Windows update - Geen WMCI meer

Dit topic is als opgelost gemarkeerd
Fijn dat je het finaal in orde hebt, al begreep ik tijdelijk je probleem niet. Uit je voorgaande posts konden we afleiden dat je best in staat was om te bepalen hoe en waar je specifieke instructies in je code kon verwerken. Je had al een methode om een weekdag in het Engels op te vragen, en daar heb ik enkel de manieren aan toegevoegd om die in het Nederlands of als getal te bekomen.
Mijn "echo Weekdag: %weekdag% - Dagnummer: %dagnr% - Vandaag: %today%" staat nu ook redelijk overbodig in je laatste code; die had ik erbij staan om te demonstreren dat mijn voorgaande instructies correct waren;)

Nog een supplementje?
Al je IF-regels kan je veel eenvoudiger schrijven. Een echt alternatief voor 'Select Case' uit bv. vba bestaat hier niet, maar je komt aardig in de buurt met:
Code:
echo off
for /f %%i in ('powershell -command "(Get-Date).DayOfWeek.value__"') do set dagnr=%%i
echo ,1,3,5,6, | find ",%dagnr%," >nul
if errorlevel 1 goto 2

:1
echo 1
echo %today%_%Dagnr%
pause
goto end

:2
echo 2
echo %today%_%Dagnr%
pause

:end

O ja, de komma's bij ",1,3,5,6," zou je hier nog kunnen weglaten, maar stel dat je met getallen van meer dan 1 cijfer (bv. maanden) zou werken, dan horen ze er wel thuis.
 
@Enigmasmurf,
Bedankt voor je reactie en voorstel.

"..... dat je best in staat was om te bepalen hoe en waar je specifieke instructies in je code kon verwerken. Je had al een methode om een weekdag in het Engels op te vragen, en daar heb ik enkel de manieren aan toegevoegd om die in het Nederlands of als getal te bekomen."
Klinkt mooi maar deze oplossing heb ik ooit gekregen van een collega hier op dit forum en niet zelf verzonnen :). Zelf ben ik een enthousiaste PC'er zonder enige opleiding in hardware of software

De regel "echo Weekdag: %weekdag% - Dagnummer: %dagnr% - Vandaag: %today%" is niet essentieel voor de werking maar bedoeld om tijdens het testen wat meer inzicht te hebben.
Het noemen van iedere weekdag met daaraan gekoppeld en 1 of een 2 heeft de flexibileit om anders in te stellen.
De functie van de totale code is het dagelijke wegschrijven/veilgstellen van nieuwe/gewijzigde bestanden in gescheiden mappen met een mapnaam van vandaag (dagnummers gekoppeld aan 1 en minder frequent wegschrijven van het outlook.pst bestand gekoppeld aan 2 ). Deze mappen worden vervolgens ook naar een clouddienst verzonden voor het geval van een systeemcrash..
 
Een alternatief voor het zoeken naar de weekdag zou van mijn kant kunnen zijn het zoeken naar oneven en even kalanderdagen. Ondersrtaande code (eigen brouwsel) werkt maar kan mogelijk eenvoudiger door b.v. today2 of today3 te onderzoeken op oneven/even en het resulaat goto 1 / goto 2 :).
Ik weet niet of today3 ook werkt bij eendecimale (0-9) kalenderdagen.
Code:
@echo off
set "today=%date:~6,4%%date:~3,2%%date:~0,2%" 'volledige datum
set "today2=%date:~0,2%"  'kalenderdag
set "today3=%date:~1,1%"  'laatste cijfer van kalenderdag
echo Vandaag: %today% - %today2% - %today3%
pause
if %today3% == 1 goto 1
if %today3% == 3 goto 1
if %today3% == 5 goto 1
if %today3% == 7 goto 1
if %today3% == 9 goto 1
else goto 2
:1
echo 1
echo %today%_%today2%_%today3%_PST
pause
goto end
:2
echo 2
echo %today%_%today2%_%today3%
pause
:end
 
Je kan controleren of een getal even of oneven is:
Code:
@echo off
set "today=%date:~6,4%%date:~3,2%%date:~0,2%" 'volledige datum
set "today2=%date:~0,2%"  'kalenderdag
set "today3=%date:~1,1%"  'laatste cijfer van kalenderdag
echo Vandaag: %today% - %today2% - %today3%
pause
set /a even=%today3% %% 2
if %even%==0 goto 2
:1
echo 1
echo %today%_%today2%_%today3%_PST
pause
goto end
:2
echo 2
echo %today%_%today2%_%today3%
pause

NB:
Je volledige datum is zo helemaal afhankelijk van de datum instellingen.
Dat kan je niet zomaar overal op die manier gebruiken.
Bij mij komt %today% er zo uit: 08-229za
 
Laatst bewerkt:
Geweldig ! Bedankt. Hoe simpel kan het zijn.
Zou je willen toelichten hoe "set /a even=%today3% %% 2" en if %even%==0 goto 2
werken?
m.n.
set /a
%% 2 (delen door 2 ?)
%even%==0 (deelbaar 2 zonder restwaarde ?)
 
Tik in een command scherm eens de opdracht SET /?
Daar staat de /a switch uitgelegd.
 
SET heb ik gevonden.
hoe ?
%% 2 (delen door 2 ?)
%even%==0 (deelbaar 2 zonder restwaarde ?)

Ik weet graag hoe eea werkt.
 
Ooit eens gevonden.
%% mag ook / zijn.
== mag voor getallen ook equ zijn.
 
Weerom met dank en respect.
Is er een methode om een andere datum dan de systeemdatum te simuleren om de werking van codes te toetsen. bv %date+3%
 
@anton44,
Mijn pogingen om te kunnen volgen falen. Mijn eenvoudigere methode uit #21 wou je niet gebruiken met als argument dat je maximale flexibiliteit wou behouden (terwijl die van mij minstens even flexibel is), en daarna reduceer je de flexibiliteit in #23 zelf naar een 'om de andere dag'-oplossing...

Maar laten we positief blijven, dus
ook @edmoor,
Een datum opvragen onafhankelijk van de Windows-datuminstellingen, en meteen ook een methode om dagen bij te tellen (of desnoods af te trekken;)) kan zo:
Code:
echo off
for /f %%A in ('powershell -NoProfile -Command "Get-Date -Format dd-MM-yyyy"') do set "datum=%%A"
for /f %%A in ('powershell -NoProfile -Command "(Get-Date).AddDays(7).ToString('dd-MM-yyyy')"') do set "volgende_week=%%A"
echo Vandaag: %datum%
echo Volgende week: %volgende_week%
pause
Voor de zekerheid: om dagen af te trekken blijft het wél AddDays, maar dan met een negatief getal.
 
@Enigmasmurf,
Bedankt voor de zeer welkome aanvulling
Al gaande kunnen inzichten veranderen en uitgangspunten bijgesteld worden. Door mijn probleem door het wegvallen van WMCI is e.e.a. in een ander daglicht komen te staan en heb ik mijn mogelijke oplossingen bijgesteld. Ook jou bijdrage heeft mij daarbij heel goed geholpen.
Je jongste oplossing #32 lost het probleem op om (eigen) aanpassingen van datums uit te kunnen testen.
Hiermee heb ik wat testjes uitgevoerd en ik meen nog een stapje verder te kunnen komen om te optimaliseren.
Door met de waarde van AddDays te spelen tussen 0 en ... (positief als negatief)
Met de waarde 0 draait het script met de huidige/actuele systeemdatum. Met iedere andere waarde als test.
Mee eens?
 
Mee eens? Jawel, volkomen! 👍
Misschien heb je dat al gedaan, anders nog deze suggestie om het jezelf makkelijker te maken door het aantal dagen ergens vooraan je code in een variabele te stoppen (uiteraard enkel nuttig als je nog heel wat tests wil doen).
 
Misschien heb je dat al gedaan, anders nog deze suggestie om het jezelf makkelijker te maken door het aantal dagen ergens vooraan je code in een variabele te stoppen (uiteraard enkel nuttig als je nog heel wat tests wil doen).
Had ik mijn achterhoofd al overwogen 😃
 
Mijn eindresulaat om acties te kunnen starten afhankelijk van de datum en een testmogelijkheid om verschillende datums te simuleren.
Nogmaals dank aan de forumleden die mij zeer goed geholpen hebben. 👏👏👏

Code:
@echo off
set "corr=0" 'aantal afwijkende dagen voor script controle, zowel positieve als negatieve waarden
set "mapnaam=Backup"
echo:
for /f %%A in ('powershell -NoProfile -Command "Get-Date -Format dd-MM-yyyy"') do set "datum=%%A"
for /f %%A in ('powershell -NoProfile -Command "(Get-Date).AddDays(%corr%).ToString('dd-MM-yyyy')"') do set "date=%%A"
for /f %%i in ('powershell -NoProfile "Get-Date -Format 'ddd'"') do set weekdag=%%i
echo Vandaag  : %datum%
echo Testdatum: %date%
set "today=%date:~6,4%%date:~3,2%%date:~0,2%" 'volledige datum
set "today2=%date:~0,2%"  'kalenderdag
set "today3=%date:~1,1%"  'laatste cijfer van kalenderdag
echo %today%
set /a even=%today3% %% 2
if %even%==0 goto 2
:1
echo 1
::echo %today%_%weekdag%_pst
::echo %mapnaam%-%today%_pst-%weekdag%
echo %mapnaam%-%today%-%weekdag%_pst
echo:
pause
goto end
:2
echo 2
::echo %today%_%weekdag%
Echo %mapnaam%-%today%-%weekdag%
echo:
pause
:end
 
Terug
Bovenaan Onderaan