Переместить файл между подпапками на уровне папки

У меня есть около 200 папок, привязанных к диску, назовем его D:. В пределах 200 папок на D: у них есть четыре основные папки, две из которых являются текущими и папками с истекшим сроком действия. Мой вопрос в том, есть ли способ написать сценарий для просмотра 200 папок и копирования одного документа из текущей в папку с истекшим сроком действия на этом уровне. После этого шага я хотел бы переименовать документ в текущей папке, чтобы удалить дату (11 символов).

ex.

Copy D:\Client\Current\Current Quote 09 30 2014.docx --> D:\Client\Expired\Current Quote 09 30 2014.docx
Rename D:\Client\Current\Current Quote 09 30 2014.docx --> D:\Client\Current\Current Quote.docx

Заранее спасибо за ваши предложения,

Иордания


person Jordan    schedule 12.10.2014    source источник
comment
Итак, у вас есть D:\Client1\..., ..., D:\client200\...?   -  person Stephan    schedule 12.10.2014
comment
Степан, это правильно. Благодарю за разъяснение.   -  person Jordan    schedule 14.10.2014


Ответы (1)


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

@echo off
setlocal ENABLEDELAYEDEXPANSION
for /d %%a in (*) do (
    pushd %%a\current
    for %%f in (filename*) do (
        copy "%%f" ..\expired
        set fn=%%~nf
        set fn=!fn:~0,-11!
        ren "%%f" "!fn!%%xf"
    )
    popd
)
person Scott C    schedule 12.10.2014
comment
Спасибо, Скотт. Текущая ставка обычно одна, но иногда бывает и две (ошибка пользователя или новая ставка была создана, когда она еще не вступила в силу). - person Jordan; 14.10.2014