Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скопировать файлы за 6 месяцев предыдущего года (2018) (http://forum.oszone.net/showthread.php?t=339282)

forza11 17-02-2019 20:57 2858477

Скопировать файлы за 6 месяцев предыдущего года (2018)
 
Добрый день.
Помогите решить проблему, нужно скопировать большой объём текстовых файлов по маске, за 2018 год, но не полностью, а за 6 месяцев 2018 года, начиная с июля по декабрь включительно.
Т.е. есть много папок допустим С:\1 С:\2 С:\3 С:\4 С:\5
В этих папках лежат текстовые файлы .csv по суткам за весь год
Файлы называются по дате например: 20180701.csv 20180702.csv 20180703.csv 20180704.csv 20180705.csv
Нужно скопировать из всех каталогов С:\1 С:\2 С:\3 С:\4 С:\5 все файлы только за 6 месяцев 2018 года начиная с июля до декабрь, т.е. с 20180701.csv по 20181231.csv

megaloman 18-02-2019 12:14 2858560

forza11,
Код:

@Echo Off
cls
SetLocal
        Set "@In1=Z:\Papka 1"
        Set "@In2=Z:\Papka 2"
        Set "@In3=Z:\Papka3"

        Set /A Dt1=20180701
        Set /A Dt2=20181231
        Set "Mask=20??????.csv

        Set "Out=Z:\Box_Arc"

        FOR /F "usebackq tokens=1* delims==" %%i IN (`2^>nul Set "@In"`) DO (
                Echo +++ %%j
                FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /B /S /A:-D "%%j\%Mask%"`) DO Call :OutFile "%%f" "%Out%" %Dt1% %Dt2%
        )
EndLocal
Pause
GoTo :Eof

:OutFile
        Set "FDt=%~n1"
        2>nul Set /A FDt=%FDt:~0,8% ||Exit /B 1

        If  %FDt% LSS %3 Exit /B 0
        If  %FDt% GTR %4 Exit /B 0
               
        If Not Exist "%~2%~p1" Md "%~2%~p1"
        >nul Xcopy /D /Y /R %1 "%~2%~p1"
rem        >nul Move /Y %1 "%~2%~p1"
Exit /B %ErrorLevel%

Внутренний голос мне шепчет, что Вам надо не скопировать файлы за период, а переместить.
В этом случае удалите строку с Xcopy и уберите Rem перед Move.
Ограничение: Должно быть Dt1 <= Dt2

forza11 18-02-2019 17:00 2858623

megaloman,
Спасибо, сейчас попробую =)
На счёт переместить тоже верно, понадобится.


Время: 06:12.

Время: 06:12.
© OSzone.net 2001-