[AI CC2023] Добавить дату сохранения к имени файла.

  • Автор темы Автор темы ITIT
  • Дата начала Дата начала

ITIT

Топикстартер
15 лет на форуме
Сообщения
516
Реакции
196
Уважаемые господа,есть ли возможность скриптом добавить дату сохранения к имени файла?
Всем ответившим заранее спасибо.
 
Уважаемые господа,есть ли возможность скриптом добавить дату сохранения к имени файла?
Всем ответившим заранее спасибо.
Если сохраняете скриптом, то не сложно, если нет, тоже не сложно потом добавить её к имени файла... в тотал коммандере к примеру :)
 
Если бы я это умел,то работал бы раввином в Жмеринке 😀
Так дайте ту часть скрипта которым сохраняете, где он сохраняет... или предлагаете в экстрасенсов поиграть?:)
 
Да нет у меня никакого скрипта поэтому и спрашиваю.
Задача простая,есть старые архивы многолетней давности,нужно открыть файлы и сохранить их в ту же папку с добавлением к имени файла сегодняшнюю дату.
Пример:
Было ,, Игра экстрасенсов ,,
Нужно ,, Игра экстрасенсов 07.08.2023 ,,
 
Задача простая,есть старые архивы многолетней давности,нужно открыть файлы и сохранить их в ту же папку с добавлением к имени файла сегодняшнюю дату
А зачем открывать? Почему нельзя просто переименовать все скопом? :)
 
  • Спасибо
Реакции: Yar и ITIT
  • Спасибо
Реакции: ITIT
Сделать батник с таким содержимым for %%x in (%*) do copy "%%~x" "%%~dpnx_%date%%%~xx" и таскать на него файлы скопом :)
 
Сделать батник с таким содержимым for %%x in (%*) do copy "%%~x" "%%~dpnx_%date%%%~xx" и таскать на него файлы скопом :)
Код в вашем батнике выглядит в целом хорошо и выполняет задачу копирования файлов с добавлением текущей даты в их имена. Однако, есть несколько моментов, которые можно улучшить:

1. Форматирование даты: в текущей версии кода переменная %date% предоставляет дату в формате, зависимом от настроек региональных параметров компьютера. Это может привести к проблемам, так как разные компьютеры могут иметь различные форматы даты. Рекомендуется использовать стандартный формат даты, который не зависит от настроек компьютера. Например, в формате "дд.мм.гггг", можно использовать команду wmic для получения текущей даты без необходимости удалять ненужные символы:

bat
for /f "delims=" %%D in ('wmic os get LocalDateTime ^| findstr /b [0-9]') do set "date=%%D"
set "date=!date:~6,2!.!date:~4,2!.!date:~0,4!"


2. Проверка наличия файлов: в текущей версии кода отсутствует проверка наличия файлов перед копированием. Если переданный файл не существует, команда copy может выдать сообщение об ошибке. Для этого можно добавить проверку наличия файлов перед выполнением команды copy. Например, используя if exist:

bat
for %%x in (%*) do (
if exist "%%~x" (
copy "%%~x" "%%~dpnx_%date%%%~xx"
) else (
echo Файл "%%~x" не найден.
)
)


3. Обработка имени файла с пробелами: ваш код может не корректно обработать имена файлов, содержащие пробелы из-за неправильного экранирования. Рекомендуется использовать двойные кавычки для обработки файлов с пробелами. Например:

bat
for %%x in (%*) do copy "%%~x" "%%~dpnx_%date%%%~xx"


Вот улучшенная версия кода с учетом этих рекомендаций:

bat
@echo off
setlocal enabledelayedexpansion

REM Получаем текущую дату в формате "дд.мм.гггг"
for /f "delims=" %%D in ('wmic os get LocalDateTime ^| findstr /b [0-9]') do set "date=%%D"
set "date=!date:~6,2!.!date:~4,2!.!date:~0,4!"

REM Проходим по каждому переданному файлу
for %%x in (%*) do (
REM Проверяем наличие файла
if exist "%%~x" (
REM Извлекаем путь, имя и расширение файла
set "path=%%~dpx"
set "name=%%~nx"
set "extension=%%~xx"

REM Формируем новое имя файла с добавлением текущей даты
set "newname=!name!_!date!!extension!"

REM Копируем файл с новым именем
copy "%%~x" "!path!!newname!"
) else (
echo Файл "%%~x" не найден.
)
)

echo Копирование файлов завершено.


Теперь код более надежно обрабатывает различные имена файлов и использует стандартный формат даты для всех компьютеров.

:)
 
  • Спасибо
Реакции: ITIT

Не по теме:
Роман решил освоить новую профессию :))?
 
  • Спасибо
Реакции: ~RA~ и _MBK_
Приветствую, очень схожая задача, необходимо в конце выполнгения action сохранять файл с название текущей даты в формате: FileName_27_07_2023
К сожалению решение с батником не подходит для mac, было бы здорово найти решение которое работает через action или скрипт внутри иллюстратора/фотошопа, тогда оно будет универсальным.
Подскажите, это в целом возможно? Заранее спасибо за помощь.
 
Подскажите, это в целом возможно?
Возможно, но если Вам нужно обработать файл выполнив экшн, то это сильно отличается от задачи ТС и в данном случае использование иллюстратора оправданно. Нужно Ваш экшн или команду на его выполнение засунуть в скрипт и запускать скрипт в итоге, который и будет сохранять.
 
если Вам нужно обработать файл выполнив экшн
Верно, именно через экшн чтобы он сохранил текущую дату

Нужно Ваш экшн или команду на его выполнение засунуть в скрипт и запускать скрипт в итоге, который и будет сохранять.
Возможно через адобовский скрипт или apple script
Буду благодарен если напишите подробнее, пока даже в теории не совсем понимаю как это осуществить.

Сам экшн простой, он просто сохраняет текущий файл в формате .ai и .pdf (как копия) - т.к. за неделю бывает много правок по файлу и приходится постоянно присылать новые версии, а когда день меняется, очень неудобно менять дату (т.к. таких файлов много).
 
Сам экшн простой, он просто сохраняет текущий файл в формате .ai и .pdf
Экшн сам по себе тут лишнее, все делается скриптом.
сохраняет текущий файл в формате .ai и .pdf (как копия)
А тут в чем смысл? ai и pdf какие-то особенные? Какие параметры сохранения? Пресеты используются?