Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Придумал как сделать, только нужен небольшой upgrade. Нужно дописать если файл содержит вначале "21**** имя.xlsx" - удалять первые 6 символов и заменять на текущую дату. Проверил, батник переименовывает датой когда последняя дата изменения файла была, если ты открываешь документ - чего то меняешь и сохраняешь и запускаешь батник он переименовывает вот так: - 210901 210831 test.txt - т.е. вчерашнюю дату не изменяет и не удаляет а добавляет новую. Если имя файла было тест.xlsx и изменение было 210808 то батник переименовывает его как 210808 тест.xlsx. Помогите сделать апргрейд кода ))

У меня мысли крутятся, что нужно добавить: выделить подстроку с помощью set и запихнуть в if и прописать условие поиске, если 21**** тест.xlsx то удаляем первые 6 символов и заменяем их на текущие, как это сделать не пойму

Код: Выделить весь код
@echo off
SetLocal EnableDelayedExpansion
set "workdir=c:\temp"
for /f "tokens=* delims=" %%a in ('dir /tc /o:-d /a:a /b "%workdir%" 2^>nul') do (
    for /f "tokens=* delims=" %%b in ("%workdir%\%%a") do set "d=%%~tb"
    set "d1=!d:~8,2!!d:~3,2!!d:~0,2!"
    echo %workdir%\%%a !d1!
    ren "%workdir%\%%a" "!d1! %%a"
    attrib -A "%workdir%\!d1! %%a"
)
pause

Отправлено: 10:39, 01-09-2021 | #9