Звучит как плохая идея разбирать дату, которая может быть в различных форматах, формат которых вы не знаете. Лучше получить дату в определенном формате, даже если это означает не чистую партию, а вызов PowerShell.
C:\Users\tod>for /f %a in ('C:\Windows\System32\WindowsPowershell\v1.0\powershell -Command "Get-Date -format yyyy_MM_dd__HH_mm_ss"') do set datetime=%a
C:\Users\tod>set datetime=2018_01_22__09_15_33
или без времени.
C:\Users\tod>for /f %a in ('C:\Windows\System32\WindowsPowershell\v1.0\powershell -Command "Get-Date -format yyyy_MM_dd"') do set datetime=%a
C:\Users\tod>set datetime=2018_01_22
C:\Users\tod>
Как только у вас есть, что вы можете сделать
C:\Users\tod>echo %datetime:~0,4%
2018
C:\Users\tod>
И так далее.. Таким образом, вы можете установить любую переменную равной году, месяцу, дате в месяце.
добавленной
Если вы не хотите использовать powershell и не возражаете, это будет работать только для дат в США.
C:\Users\tod>echo %date%
01/22/2018
C:\Users\tod>echo %date:~0,2%
01
C:\Users\tod>echo %date:~3,2%
22
C:\Users\tod>echo %date:~6,4%
2018
C:\Users\tod>
Так что вы действительно должны видеть, как это сделать.
set first=%date:~0,2%
set second=%date:~3,2%
set third=%date:~6,4%
C:\Users\tod>set first=%date:~0,2%
C:\Users\tod>set second=%date:~3,2%
C:\Users\tod>set third=%date:~6,4%
C:\Users\tod>echo %first%/%second%/%third%
01/22/2018
C:\Users\tod>echo %second%/%first%/%third%
22/01/2018
C:\Users\tod>
Таким образом, вы можете сказать, set ukdate=%second%/%first%/%third%
и вы можете сказать, echo %ukdate%
И этот не-PowerShell метод работает, только если вы знаете формат даты в системе и знаете, что это США. Я бы вообще рекомендовал против пакетной обработки, потому что, например, что, если новая ревизия ОС приходит и вывод команды немного отличается, и ваш код предполагает определенный формат при его разборе. И хотя в этом случае партия в некотором смысле опрятна, иногда она может походить на стучащие палочки. Хорошая идея - знать пакет и использовать его немного, но установить какой-либо другой язык сценариев, такой как Ruby или Python, Golang или NodeJS. Но если вы хотите использовать исключительно пакет для этого, то это так.