PDA

Показать полную графическую версию : [решено] копирование файла в папку с датой


foma24
16-08-2012, 09:21
Добрый день. Подскажите пожалуйста, есть файлы с именем pbyyyymmdd (дата не текущая), как можно по дате в имени файла скопировать этот файл в папку с именем yyyy-mm-dd

El Sanchez
16-08-2012, 09:55
foma24,

@Echo Off
SetLocal
Set Source=C:\temp

For %%A In ("%Source%\pb*.*") Do Call :_Proc "%%A"
GoTo :EoF

:_Proc
Set FN=%~n1
If Not "%FN:~9,1%"=="" XCopy /Y %1 "%~dp1%FN:~2,4%-%FN:~6,2%-%FN:~8,2%\"

foma24
16-08-2012, 10:10
еще вопросов, а если файл вот такого вида KWTFCB_PB1_ROOXXXXXXXX_XXXXYYYYMMDD_XXX.TXT

FN:~9,1 подразумевает 10 символов
а на такой файл выдает Недопустимое число параметров

El Sanchez
16-08-2012, 11:04
FN:~9,1 подразумевает 10 символов »
foma24, это подразумевает, что если в имени файла есть 10 символ, то можно получать из этого имени дату, не боясь, что символов не хватит.

а на такой файл выдает Недопустимое число параметров »
foma24, а на такой файл маски в for нет. Показывайте, что изменили в скрипте.

foma24
16-08-2012, 11:40
Глупую ошибку допустил)

Вот скрипт:

SetLocal
Set Source=C:\111

For %%A In ("%Source%\*.*") Do Call :_Proc "%%A"
GoTo :EoF

:_Proc
Set FN=%~n1
If Not "%FN:~9,1%"=="" XCopy /Y %1 "C:\222\%FN:~2,4%-%FN:~6,2%-%FN:~8,2%\"
pause

вопрос такой, если у меня в одну папку кидаются и pbyyyymmdd и KWTFCB_PB1_ROOXXXXXXXX_XXXXYYYYMMDD_XXX.TXT как сделать так чтобы и то и то копировалось в папку C:\222\%FN:~2,4%-%FN:~6,2%-%FN:~8,2%\
kwt ведь создает свою папку TFCB-_P-1_ из за указания номеров символов в коде

El Sanchez
16-08-2012, 12:23
вопрос такой, если у меня в одну папку кидаются и pbyyyymmdd и KWTFCB_PB1_ROOXXXXXXXX_XXXXYYYYMMDD_XXX.TXT как сделать так чтобы и то и то копировалось в папку C:\222\%FN:~2,4%-%FN:~6,2%-%FN:~8,2%\ »
foma24,

@Echo Off
SetLocal
Set Source=C:\111

For %%A In ("%Source%\pb*.*" "%Source%\KWTFCB*.*") Do Call :_Proc "%%A"
GoTo :EoF

:_Proc
Set FN=%~n1
Echo:%FN%|FindStr /i ^^pb&&If Not "%%FN:~9,1%%"=="" XCopy /Y %1 "C:\222\%FN:~2,4%-%FN:~6,2%-%FN:~8,2%\"
Echo:%FN%|FindStr /i ^^KWTFCB&&If Not "%%FN:~34,1%%"=="" XCopy /Y %1 "C:\222\%FN:~27,4%-%FN:~31,2%-%FN:~33,2%\"




© OSzone.net 2001-2012