В командном файле мне нужно извлечь месяц, день, год из команды даты. Поэтому я использовал следующее, которое по существу анализирует команду Date для извлечения ее подстрок в переменную:
set Day=%Date:~3,2%
set Mth=%Date:~0,2%
set Yr=%Date:~6,4%
Это все замечательно, но если я разверну этот пакетный файл на машине с другими региональными / страновыми настройками, он потерпит неудачу, потому что месяц, день и год находятся в разных местах.
Как извлечь месяц, день и год независимо от формата даты?
windows-7
windows-xp
batch
date
AngryHacker
источник
источник
Ответы:
Источник: http://ss64.com/nt/syntax-getdate.html
Метод 2 (один cmd)
GetDate.cmd
Метод 1 (cmd + vb)
GetDate.cmd
getdate.vbs
источник
Set _second=00%%K
при извлечении изwmic
и добавьте начальные нули, как и остальные.Windows XP и выше
getDate.cmd
Выход
источник
ECHO %year%-%month%-%day%
форматом, совместимым с ISO и файловой системой (не говоря уже о автоматической сортировке по году-месяцу-дню). :-).Я знаю, что это не совсем то, что вы просили, но я использую порт Windows
date
приложения Linux из команды внутри командного файла, а затем присваиваю результат переменной.Мне еще предстоит найти способ надежного получения даты, используя только пакетные команды.
источник
Используйте этот пакетный файл для формата ГГГГ-ММ-ДД. Он использует инструмент управления окнами, который должен присутствовать во всех последних версиях Windows, чтобы получить строку даты и времени, которая не зависит от региональных настроек.
Сохраните в командный файл по пути (например) c: \ windows \ rdate.bat, затем получите доступ к CALL RDATE.BAT, чтобы установить переменную (и). Кроме того, скопируйте код в ваш пакетный файл.
Этот формат даты подходит для имен файлов и ведения журнала. Сортирует правильно. Переменная logtime добавляет переменную дата + время в виде ГГГГ-ММ-ДД-ЧЧММСС, пригодную для использования при регистрации активности пакетного файла со второй точностью.
Настройте форматы даты (и времени) по своему усмотрению. REM экран эхо в производстве. Два числа в каждом выделенном тексте - это начальный индекс начальных символов, начинающийся с нуля, и количество копируемых символов, например,% datetime: ~ 0,4% занимает подстроку из 4 символов, начиная с позиции 0.
источник
wmic os get localdatetime
Хотя вы правы в том, что VS 2008 выводит пакетный файл, вы можете запустить практически любую программу, включая скрипты Powershell и другие программы.
Редактировать:
Вот несколько похожих вопросов:
/programming/1051845/visual-studio-2008-professional-build-process /programming/3049369/embed-application-compilation-time-stamp
Первоначально, я собирался перевести это на SO. , ,
источник
Вы пытались использовать
NET TIME \\%ComputerName%
вместоDATE
? Я думаю, чтоNET TIME
предполагается предоставлять данные в согласованном формате независимо от локали.источник
net time
всегда выводил в формате m / d / yyyy. @AngryHacker, с какими настройками он у тебя не работал?Благодаря посту Шекхара это работает по мере необходимости и ноль заполнения времени.
Выходные данные: LogFile-20151113-0901.txt
источник
Это может быть несколько не по теме, но вот файл .bat, который я написал для своих собственных запланированных резервных копий, а также вызов из действий после сборки в visual studio. Я надеюсь, что некоторые найдут это полезным.
Сохраните следующее в .bat файл
источник
%date%
и%time%
переменных, которые локали знают, и не может действительно быть разобран предсказуемым образом , как просили ОП.