Opgelost Weeknummer met batch file

Dit topic is als opgelost gemarkeerd

Senso

Inventaris
Lid geworden
13 jun 2016
Berichten
11.063
Besturingssysteem
W10 Pro en W11 Pro
Office versie
Office 2007 H&S en Office 2021 Prof Plus
Ik heb een nieuwe command-line gevonden voor het weeknummer. Wie kan/wil deze verwerken in de code?

PHP:
@Echo Off
set "mainFolder=E:\PRIVE\Mijn Geplande taken"

for /f "delims=" %%d in ('dir "%mainFolder%" /ad /b /s ^| sort /r') do (
    rd "%%d" 2>nul
)

echo All empty subfolders in %mainFolder% have been deleted
pause
rem
rem --------------------------------------------------------------------
rem
@For /F %%I In ('PowerShell Get-Date -UFormat %%V') Do set weekn=%%I
@Echo %weeknr%
)
rem @Timeout -1
rem echo %weekn%
md "E:\PRIVE\Mijn Geplande taken\Het is nu week %weekn%"
pause
exit

De nieuwe opdrachtregel is:
"{0:d1}" -f ($(Get-Culture).Calendar.GetWeekOfYear((Get-Date),[System.Globalization.CalendarWeekRule]::FirstFourDayWeek, [DayOfWeek]::Monday))
 
Met een script geprobeerd. Lukt niet.

PHP:
$currentweek = "{0:d1}" -f ($(Get-Culture).Calendar.GetWeekOfYear((Get-Date),[System.Globalization.CalendarWeekRule]::FirstFourDayWeek, [DayOfWeek]::Monday))
New-Item -ItemType Directory -Path "E:\PRIVE\Mijn Geplande taken\Het is nu week $currentweek"
 
Probeer het nu met een ander script:
De locatie staat in het vertrouwenscentrum.
Waar gaat het fout? Volgens internet moet dit kunnen.
Staat de module niet goed?

Weigert uitvoering.jpg
 
Waarom niet gewoon met VBS de cellen lezen en VBS de mappen laten maken?

Of doe het eens zo:
Code:
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open "E:\PRIVE\Mijn geplande taken\Maak map met huidig weeknummer.xlsm"
objExcel.Application.run "Maak map met huidig weeknummer!CreateFoldersFromCells"
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing
 
Laatst bewerkt:
Ik was te laat om het bericht nog te bewerken.
Er zit nog een foutje in, deze zou moeten werken:
Code:
Set objExcel = CreateObject("Excel.Application")
With objExcel
    .Workbooks.Open "E:\PRIVE\Mijn geplande taken\Maak map met huidig weeknummer.xlsm"
    .Application.Run "CreateFoldersFromCells"
    .DisplayAlerts = False
    .Application.Quit
End With
Set objExcel = Nothing
 
Waarom niet gewoon met VBS de cellen lezen en VBS de mappen laten maken?
Ik zoek genoeg op internet maar echt concrete oplossingen staan er dan niet bij. Weer anders, veel ingewikkelder met lappen codes. Kennis ontbreekt ook.

Ja, die werkt. De map wordt aangemaakt. Er zit echter een knop/melding in het document, "folders aangemaakt" dan moet je OK klikken, vermoedelijk zorgt die er voor dat het document blijft openstaan? Heb je daar nog een oplossing voor?

edit:
Het is niet de knop. Want ik kan OK klikken en het document blijft toch openstaan.

Kun jij ook een regel aan het begin opnemen die een lege map in "E:\PRIVE\Mijn Geplande taken" verwijdert?

edit:
opgenomen in batch file >
start cscript "E:\PRIVE\Mijn Geplande taken\Maak map met huidig weeknummer.vbs"
werkt goed maar scriptvenster blijft openstaan.
 
Laatst bewerkt:
Ik heb het nu werkend. Alleen dat venster van script.exe sluit niet. Excel taskkill toegepast zie code: werkt goed. Echter haal je pause weg wordt het script niet uitgevoerd. Je moet die taskkill ergens anders uitvoeren als het script is uitgevoerd.

Die pause is lastig, als het script is uitgevoerd zou alles automatisch moeten worden afgesloten.

Code:
@Echo Off
set "mainFolder=E:\PRIVE\Mijn Geplande taken"

for /f "delims=" %%d in ('dir "%mainFolder%" /ad /b /s ^| sort /r') do (
    rd "%%d" 2>nul
)

echo All empty subfolders in %mainFolder% have been deleted
start cscript "E:\PRIVE\Mijn Geplande taken\Maak map met huidig weeknummer.vbs"
pause
TASKKILL /F /IM cscript.exe
rem Die pause is lastig, als het script is uitgevoerd zou alles automatisch moeten worden afgesloten
taskkill /f /im excel.exe /fi "USERNAME eq %USERNAME%"
rem exit
rem
rem --------------------------------------------------------------------
rem
rem @For /F %%I In ('PowerShell Get-Date -UFormat %%V') Do set weekn=%%I
rem @Echo %weeknr%
rem )
rem @Timeout -1
rem echo %weekn%
rem md "E:\PRIVE\Mijn Geplande taken\Het is nu week %weekn%"
exit
 
Laatst bewerkt:
Haal het woord start eens weg.
Of maak er dit van:
Code:
start /B cscript E:\PRIVE\"Mijn Geplande taken\Maak map met huidig weeknummer.vbs"
Let op de gewijzigde positie van de eerste dubbele quote.
 
Laatst bewerkt:
Met start /B loopt het nu prima. Leeg venster van cscript.exe en Excel-bestand worden gesloten. Met de positie van de quote merk ik geen verandering. Maar de pause is nog een onderbreking aan het eind. Zou eigenlijk direct moeten worden gesloten. Maar haal je pause weg dan wordt het script niet uitgevoerd.
Maar goed, ik kan ook een keer klikken.
 
Laatst bewerkt:
Geen probleem hier.
Maar maak er dan eens start /B /Wait van.
 
Toegepast maar helpt niet. Venster van pause blijft openstaan. Het is mooi geweest. Loopt nu als een trein. Kunnen we van de spoorwegen morgen niet zeggen. Een keer klikken is ook geen punt. Hartelijk dank voor jouw inzet en volharding. 👍
 
Als het goed is kan die Pause nu weg en wordt het script wel uitgevoerd.
 
Als het goed is...
Helaas, lukt niet. Ik ben tevreden, één maal klikken is geen punt. Overigens hoorde ik dat de NS vandaag staakt.
 
Die staan dus ook op pause..
NS staat kennelijk niet voor Niet Staken.
 
Terug
Bovenaan Onderaan