2014-10-12 5 views
0

У меня есть около 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 

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

Jordan

+0

У вас есть D: \ Client1 \ ... ', ...,' D: \ client200 \ ... '? – Stephan

+0

Стефан, это правильно. Спасибо за разъяснения. – Jordan

ответ

0

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

@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 
) 
+0

Спасибо Скотту. Обычно существует одна текущая ставка, но иногда бывает две (пользовательская ошибка, или новая ставка была создана, когда она еще не вступила в силу). – Jordan

Смежные вопросы