Я мало знаю о синтаксисе windows.bat. Мое простое требование — создать папку в определенном месте с именем в качестве текущей даты. Я попытался найти это в google, но не получил хороший вариант. Есть ли способ сделать это?
Попробуйте это (эквивалент bash backquotes):
Для получения дополнительной информации см. http://ss64.com/nt/for_cmd.html
Быстрая и грязная: если вы можете проживать с датой UTC вместо локальной, вы можете использовать:
Работает во всех локалях. Однако только на XP и выше.
Вам нужно избавиться от символов «/» в дате, прежде чем вы сможете использовать ее в mkdir следующим образом:
Если вы хотите формат mm-dd-yyyy , вы можете использовать:
Это даст вам недавно созданную папку с текущей датой в формате DD-MM-YY
У меня возникла проблема с этим, потому что мой сервер АБСОЛЮТНО должен был иметь свою дату в формате MM/dd/yyyy, в то время как мне хотелось, чтобы каталог был в формате YYYY-MM-DD для удобства. Здесь, как получить его в формате YYYY-MM-DD, независимо от того, какие ваши региональные настройки заданы как.
Узнайте, что отображается, когда вы используете% DATE%:
В командной строке введите:
Шахта вышла 03/06/2013 (как и 6 марта 2013 года)
Поэтому, чтобы получить имя каталога как 2013-03-06, введите код в ваш пакетный файл:
Это зависит от региональных настроек компьютера, поэтому сначала проверьте вывод даты в командной строке или сделайте эхо даты.
Для этого создайте командный файл и добавьте нижеприведенный контент
Он производит вывод, в моем случае это показывает Пт 05/06/2015.
Теперь нам нужно избавиться от косой черты (/)
Для этого включите приведенный ниже код в пакетном файле.
если вы повторяете «temp», вы можете видеть дату без косой черты.
Теперь вам нужно всего лишь форматировать дату так, как вы хотите.
Например, мне нужна дата в формате YYYYMMDD, тогда мне нужно установить имя dirname ниже
Чтобы объяснить, как это работает, нам нужно сравнить значение temp
теперь поместите все символы с номерами, начинающимися с 0.
Итак, для формата даты, который мне нужен, 20150605,
2015 год, в котором 2 находится на восьмом месте, поэтому с 8-й позиции до 4-х мест он достигнет 2015 года.
Месяц 06, в котором 0 находится на шестой позиции, поэтому с 6-й позиции до 2-х мест он составит 06.
День 05, в котором 0 находится в 4-й позиции, поэтому с 4-го положения до 2-х мест он будет делать 05.
Итак, чтобы настроить окончательный формат, мы имеем ниже.
Чтобы увеличить формат даты с помощью «-» или «_» между датой, месяцем и годом, вы можете изменить ниже
Таким образом, окончательный код партии будет
Каталог будет создан в том месте, где выполняется эта партия.
Достаточно часто, особенно для резервных копий необходимо создавать папку с именем текущей даты, а затем копировать в нее бэкап. Есть насколько вариантов создания такой папки:
Предлагаю ознакомиться с предложениями моих партнёров
Такая команда создаст в корне системного диска папку с именем текущей даты. Но эта команда не будет работать, если региональные установки отличны от русского и в разделителях даты используется слеш. В таком случае, можно сделать по другому:
Как вариант, можно рассмотреть добавление к имени файла текущей даты:
Имя файла test.txt будет переименовано в test_15-08-2015.txt
Аналогичная задача, только в имя папки нужно добавить время
rem время с точками
set mytime=%time%
set mytime=%mytime:
rem время без точек
set mytime=%time%
set mytime=%mytime:
Далее можно подставлять куда нужно переменную %mytime%
Формат времени hh:mm:ss зависит о региональных настроек, для USA будет по-другому,также как и дата.
Мне нужно, чтобы BAT скрипт мог создать папку с именем включающим текущую дату.
Интернет полон решений, большинство которых зависит от локальных настроек системы, например :
Мне же нужно создавать папку стабильно и независимо от локальных настроек.
Источник: