Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
RaDM
6 / 8 / 1
Регистрация: 14.12.2015
Сообщений: 146
1

Создание папки, именем которой является дата изменения определённого файла

19.12.2015, 21:00. Просмотров 1132. Ответов 7
Метки нет (Все метки)

И-так, уважаемые знатоки, внимание на экран...

Имеется один единственный файл, место и название определены. Нужно создать папку с датой изменения этого файла.

Приблизительная, как я думаю, схема.
Windows Batch file
1
2
for /f  %%A in ('dir c:\1.txt /T:W') do set s=%%A
Md c:\%s%
Не знаю как тут все работает. Я просто нажимал на кнопки.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2015, 21:00
Ответы с готовыми решениями:

Создание папки с именем, являющимся расширением определённого файла
Добрый день! Есть: 1. Папка 1, условно ее путь C:\mail 2. Папка 2, условно ее путь D:\archive...

Создание папки с именем, являющимся текущей датой, и копирование в неё определённого файла
Собственно весь вопрос в теме...помогите в написании батника? создаю папку так: MD...

Как создать папку, именем которой будет дата создания файла?
Здравствуйте, уважаемые форумчане. Подскажите, пожалуйста, как создать папку имя которой будет ...

Создание папки с именем, являющимся текущей датой, и копирование в неё файла
Всем привет, такая проблема надо чтоб создавалась папка с текущей датой и в неё копировались файлы...

Создание копии папки со случайным именем и копирование ее (папки) в заданный раздел
Подскажите как сделать в .bat создание копии папки со случайным именем и копирование ее (папки) в...

7
b0gus
271 / 170 / 73
Регистрация: 17.03.2014
Сообщений: 495
19.12.2015, 22:25 2
Цитата Сообщение от RaDM Посмотреть сообщение
создать папку с датой изменения этого файла
полагаю, на pure CMD это затруднительно, используем WMIC
Windows Batch file
1
2
3
4
@echo off
SetLocal EnableDelayedExpansion
for /f "skip=1" %%v in ('wmic datafile c:\\1.txt get LastModified /format:table') do if "!name_dir!"=="" set name_dir=%%v
md c:\%name_dir:~0,8%
имя папки будет ГГГГММДД и = дате изменения файла c:\1.txt
0
alpap
1893 / 1389 / 457
Регистрация: 26.04.2015
Сообщений: 4,707
20.12.2015, 01:06 3
RaDM,
Windows Batch file
1
2
3
@echo off
for %%i in ("c:\1.txt") do set "sdate=%%~ti" & cmd /v /c "set "sdate=!sdate:~0,-6!" & md "!sdate!""
exit
.
0
RaDM
6 / 8 / 1
Регистрация: 14.12.2015
Сообщений: 146
20.12.2015, 18:27  [ТС] 4
Вариант предложеный alpap красивее. Но одно но: папка мертвая. Я не могу с ней работать. Приравнять бы ее к переменной пути.


Заголовок: Возможно ли с помощью параметров: skip, tokens, delims, указать определенную ячейку в таблице? (Токены-столбцы, еол не пригодится)

Представте таблицу 7 столбцов на 10 строк.

Нужно указать ячейку 1-6 (первый столбец, шестая строчка)

skip=5 - убираем первые пять строчек

tokens=1 - выбираем первый столбец (токены - это столбцы)

Получаем то что ниже, т.е. 1-6, 1-7, 1-8, 1-9, 1-10, а надо только 1-6.

Как бы обрезать то что снизу (нужен параметр антискип который режет строки ПОСЛЕ)

К чему веду: Команда DIR производит 7-столбцовый вывод: дата, время, размер, имя файла, пусто, пусто, пусто.
Первые пять строчек - мусор.
То что ниже 6 строки - тоже мусор.
Ваше мнение?


Только дату изменения файла (dir c:\1.txt /tw) без времени. Для создание папки с датой изменения 1тхт.

Вот ошибка: появляется двоеточие (чч:мм) в имени:
Windows Batch file
1
2
for %%i in ("c:\1.txt") do set s=%%~ti
md c\%s%
Как вариант. Использовать текстовый "буфер обмена": C:\temp.txt
Как прописать не знаю

Windows Batch file
1
2
3
4
for %%i in (C:\1.txt) do echo %%~ti>c:\temp.txt Rem запись даты и времени в "буфер"
Set s=первые 10 символов из "буфера"
Md c:\%s%
Очистка "буфера"

ПС. Пишу скрипт для себя по обслуживанию Системы Консультант Плюс. Надоело делать одни и теже муторные действия.
0
sov44
1760 / 744 / 128
Регистрация: 09.04.2011
Сообщений: 1,314
21.12.2015, 10:27 5
Цитата Сообщение от RaDM Посмотреть сообщение
Вот ошибка: появляется двоеточие (чч:мм) в имени:
Так и должно быть. Меняйте двоеточие например на нижнее подчеркивание.
Windows Batch file
1
2
3
for %%i in ("c:\1.txt") do set s=%%~ti
md "c:\%s::=_%"
pause
0
RaDM
6 / 8 / 1
Регистрация: 14.12.2015
Сообщений: 146
21.12.2015, 13:51  [ТС] 6
Время не нужно. Иначе теряется всякий смысл. У меня 10 компов, на каждом присутствует файл usr с одинаковой датой измененения, но с различным временем. Мне надо создать на флэшке папку только с датой изменения и скопировать туда все эти файлы usr со всех компов.
Это последний шаг и скрипт будет создан окончательно.
0
sov44
1760 / 744 / 128
Регистрация: 09.04.2011
Сообщений: 1,314
21.12.2015, 14:06 7
Цитата Сообщение от RaDM Посмотреть сообщение
Время не нужно.
а что мешает отрезать всё лишнее из вывода ~ti
Берём только первые 10 символов
Windows Batch file
1
2
3
for %%i in ("c:\1.txt") do set s=%%~ti
md "c:\%s:~0,10%"
pause
0
RaDM
6 / 8 / 1
Регистрация: 14.12.2015
Сообщений: 146
21.12.2015, 20:41  [ТС] 8
А ларчик просто открывался . Оставлю завтра последнее сообщение-код с результатами для подведения черты. У меня все получилось. Ура! Всех НГ!
0
21.12.2015, 20:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2015, 20:41

Распределение файлов из папки по части имени файла в папки, содержащие файлы с похожим именем (квитовка)
Добрый день! Искал по форуму, но мне не удалось найти похожее решение. К примеру имеется...

Поиск и удаление папки, в которой находится подпапка с заданным именем
Помогите написать bat*ник. Собственно что хочется: Чтобы он искал и удалял папку, в которой...

Создание папки с именем, являющимся текущей датой, и копирование в неё определённого файла
Собственно весь вопрос в данной теме. пробу вот так: Dim s Set WshShell =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru