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

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

mychman 31-03-2016 13:28 2621684

Батник копирования файлов по маске
 
Добрый день, стоит задача копировать файлы в папки по датам, к примеру приходит файл в папку 1, вида ixx_xxxxx_x_x_160328.txt - где 160328 (28 марта 2016 года), этот файл следует скопировать в папку вида 280316, если ёё нет, то создать.
Подскажите пожалуйста, как это сделать? У меня есть батник, но он копирует файлы по дате изменения.

megaloman 31-03-2016 16:31 2621745

Код:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set "In=E:\Delete\1"
Set "Out=E:\Delete\Out"
Set "Mask=i??_?????_?_?_??????.txt"

FOR %%f IN ("%In%\%Mask%") DO (
        Set "Name=%%~nf"
        Set "Dt=!Name:~-6!
rem Если надо иметь наименования папок в формате ГГММДД cледующую строку закомментировать или удалить
        Set "Dt=!Dt:~4,2!!Dt:~2,2!!Dt:~0,2!"
        If Not Exist "%Out%\!Dt!" Md "%Out%\!Dt!"
        Move /Y "%%f" "%Out%\!Dt!\" >nul 2>nul
)


mychman 31-03-2016 17:08 2621759

Попробовал, ничего не получилось, видимо из-за строки Set "Mask=i??_?????_?_?_??????.txt"

megaloman 31-03-2016 20:14 2621834

mychman,
Цитата:

Цитата mychman
приходит файл в папку 1, вида ixx_xxxxx_x_x_160328.txt

- что Вы имеете ввиду? Расшифруйте. Приведите пример реального имени. У меня маска отрабатывает. Пути у Вас правильные?
Попробуйте Set "Mask=*.txt"

mychman 01-04-2016 10:26 2621957

Цитата:

Цитата megaloman
- что Вы имеете ввиду? Расшифруйте. Приведите пример реального имени. У меня маска отрабатывает. Пути у Вас правильные?
Попробуйте Set "Mask=*.txt" »

пример файла i02_00746_k_d_160220.txt
Пути я прописал немного иные, но это никак не влияет на отработку батника, попробую такую Set "Mask=*.txt"

mychman 01-04-2016 10:36 2621961

Вложений: 1
http://forum.oszone.net/attachment.p...1&d=1459496133Попробовал, не получилось

Скрин с ошибко, прикладываю.

Foreigner 01-04-2016 10:39 2621962

mychman, Вы сначала сохраните в файл с расширением bat или cmd, а потом его запускайте.

mychman 01-04-2016 11:00 2621970

Я так и сделал)) Просто результат выполнения кода переслал)

Foreigner 01-04-2016 11:13 2621982

mychman, Не понятно, как под маску i??_?????_?_?_??????.txt попадает .oracle_jre_usageSet
покажите dir /b в директории с файлами.

mychman 01-04-2016 12:00 2621997

.oracle_jre
.pdfsam
.PyCharm30
Contacts
Desktop
Documents
Downloads
Favorites
Links
Music
Pictures
Saved Games
Searches
Videos
Windows

Foreigner 01-04-2016 12:06 2622003

mychman, это скорее всего ваша домашняя директория (%userprofile%), какое она имеет отношение к E:\Delete\1 ?

megaloman 01-04-2016 12:24 2622010

mychman,
Цитата:

приходит файл в папку 1
Какой у Вас реальный путь? Сделайте Dir "Ваш реальный путь\*.*" Покажите, что получилось. Вложите в Ваше сообщение текст моего батника с Вашими изменениями в путях (переименуйте c расширением .txt для пересылки), то, что запускаете на выполнение. Похоже, Вы неправильно указываете путь, какие-то недопустимые символы в Ваших указанных путях, которые нарушают синтаксис команды For

mychman 01-04-2016 12:30 2622011

i02_20494_k_d_160325.txt
i02_20494_k_d_160328.txt
i02_20633_k_d_160301.txt
i02_20633_k_d_160302.txt
i02_20633_k_d_160304.txt
i02_20633_k_d_160315.txt
i02_20633_k_d_160318.txt
i02_20633_k_d_160325.txt
i02_20633_k_d_160328.txt
i02_20672_k_d_160219.txt
i02_20672_k_d_160224.txt
i02_20672_k_d_160225.txt
i02_20672_k_d_160301.txt
i02_20672_k_d_160310.txt
i02_20672_k_d_160311.txt
i02_20672_k_d_160315.txt
i02_20672_k_d_160316.txt
i02_20672_k_d_160317.txt
i02_20672_k_d_160318.txt
i02_20672_k_d_160321.txt
i02_20672_k_d_160323.txt
i02_20672_k_d_160324.txt
i02_20672_k_d_160325.txt
i02_20672_k_d_160328.txt
i02_20672_k_d_160329.txt
i02_21059_v_d_160304_USD.txt
i02_21059_v_d_160307_USD.txt
i02_21059_v_d_160309.txt
i02_21059_v_d_160309_USD.txt
i02_21059_v_d_160315_USD.txt
i02_21059_v_d_160324_USD.txt
i02_21059_v_d_160325_USD.txt
i02_21059_v_d_160328_USD.txt
i02_21059_v_d_160329_USD.txt
i02_21097_k_d_160224.txt
i02_21097_k_d_160226.txt
i02_21097_k_d_160301.txt
i02_21097_k_d_160310.txt
i02_21097_k_d_160315.txt
i02_21097_k_d_160317.txt
i02_21097_k_d_160323.txt
i02_21097_k_d_160324.txt
i02_21097_k_d_160325.txt
i02_21097_k_d_160328.txt
i02_21097_k_d_160329.txt
i02_21382_k_d_160301.txt
i02_21382_k_d_160302.txt
i02_21382_k_d_160304.txt
i02_21382_k_d_160315.txt
i02_21382_k_d_160316.txt
i02_21382_k_d_160318.txt
i02_21382_k_d_160325.txt
i02_21382_k_d_160328.txt
i02_21492_k_d_160219.txt
i02_21492_k_d_160220.txt
i02_21492_k_d_160224.txt
i02_21492_k_d_160225.txt
i02_21492_k_d_160226.txt
i02_21492_k_d_160301.txt
i02_21492_k_d_160302.txt
i02_21492_k_d_160310.txt
i02_21492_k_d_160311.txt
i02_21492_k_d_160315.txt
i02_21492_k_d_160316.txt
i02_21492_k_d_160317.txt
i02_21492_k_d_160318.txt
i02_21492_k_d_160321.txt
i02_21492_k_d_160322.txt
i02_21492_k_d_160323.txt
i02_21492_k_d_160324.txt
i02_21492_k_d_160325.txt
i02_21492_k_d_160328.txt
i02_21492_k_d_160329.txt
i02_21544_k_d_160219.txt
i02_21544_k_d_160220.txt
i02_21544_k_d_160224.txt
i02_21544_k_d_160225.txt
i02_21544_k_d_160226.txt
i02_21544_k_d_160301.txt
i02_21544_k_d_160310.txt
i02_21544_k_d_160315.txt
i02_21544_k_d_160317.txt
i02_21544_k_d_160321.txt
i02_21544_k_d_160325.txt
i02_21544_k_d_160328.txt
i02_21544_k_d_160329.txt
i02_21672_k_d_160220.txt
i02_21672_k_d_160224.txt
i02_21672_k_d_160226.txt
i02_21672_k_d_160301.txt
i02_21672_k_d_160302.txt
i02_21672_k_d_160315.txt
i02_21672_k_d_160316.txt
i02_21672_k_d_160317.txt
i02_21672_k_d_160318.txt
i02_21672_k_d_160321.txt
i02_21672_k_d_160323.txt
i02_21672_k_d_160324.txt
i02_22135_f_d_160310.txt
i02_22408_k_d_160224.txt
i02_22408_k_d_160226.txt
i02_22408_k_d_160301.txt
i02_22408_k_d_160310.txt
i02_22408_k_d_160311.txt
i02_22408_k_d_160315.txt
i02_22408_k_d_160317.txt
i02_22638_k_d_160220.txt
i02_22638_k_d_160224.txt
i02_22638_k_d_160226.txt
i02_22638_k_d_160302.txt
i02_22638_k_d_160304.txt
i02_22638_k_d_160307.txt
i02_22638_k_d_160315.txt
i02_22638_k_d_160316.txt
i02_22638_k_d_160317.txt
i02_22638_k_d_160321.txt
i02_22638_k_d_160323.txt
i02_22638_k_d_160324.txt
i02_22974_k_d_160323.txt
i02_22975_k_d_160224.txt
i02_22975_k_d_160226.txt
i02_22975_k_d_160302.txt
i02_22975_k_d_160303.txt
i02_22975_k_d_160304.txt
i02_22975_k_d_160309.txt
i02_22975_k_d_160317.txt
i02_22975_k_d_160321.txt
i02_22975_k_d_160322.txt
i02_22975_k_d_160324.txt
i02_22975_k_d_160329.txt
i02_23101_k_d_160226.txt
i02_23101_k_d_160309.txt
i02_23101_k_d_160311.txt
i02_23101_k_d_160317.txt
i02_23101_k_d_160318.txt
i02_23101_k_d_160322.txt
i02_23135_k_d_160224.txt
i02_23135_k_d_160301.txt
i02_23135_k_d_160302.txt
i02_23135_k_d_160323.txt
i02_23175_k_d_160224.txt
i02_23175_k_d_160301.txt
i02_23175_k_d_160302.txt
i02_23175_k_d_160304.txt
i02_23175_k_d_160310.txt
i02_23175_k_d_160311.txt
i02_23175_k_d_160315.txt
i02_23175_k_d_160318.txt
i02_23175_k_d_160324.txt
i02_23175_k_d_160325.txt
i02_23175_k_d_160328.txt
i02_23241_k_d_160219.txt
i02_23241_k_d_160224.txt
i02_23241_k_d_160225.txt
i02_23241_k_d_160301.txt
i02_23241_k_d_160302.txt
i02_23241_k_d_160310.txt
i02_23241_k_d_160315.txt
i02_23241_k_d_160317.txt
i02_23241_k_d_160318.txt
i02_23241_k_d_160321.txt
i02_23241_k_d_160322.txt
i02_23241_k_d_160324.txt
i02_23241_k_d_160325.txt
i02_23241_k_d_160328.txt
i02_23241_k_d_160329.txt
i02_23258_k_d_160301.txt
i02_23258_k_d_160310.txt
i02_23258_k_d_160316.txt
i02_23258_k_d_160317.txt
i02_23258_k_d_160325.txt
i02_23258_k_d_160328.txt
i02_23258_k_d_160329.txt
i02_23359_k_d_160224.txt
i02_23359_k_d_160225.txt
i02_23359_k_d_160301.txt
i02_23359_k_d_160302.txt
i02_23359_k_d_160310.txt
i02_23359_k_d_160315.txt
i02_23359_k_d_160316.txt
i02_23359_k_d_160317.txt
i02_23359_k_d_160323.txt
i02_23359_k_d_160324.txt
i02_23359_k_d_160325.txt
i02_23359_k_d_160328.txt
i02_23359_k_d_160329.txt
i02_23394_k_d_160224.txt
i02_23394_k_d_160301.txt
i02_23394_k_d_160304.txt
i02_23394_k_d_160315.txt
i02_23394_k_d_160324.txt
i02_23394_k_d_160325.txt
i02_23394_k_d_160328.txt
i02_23598_k_d_160219.txt
i02_23598_k_d_160301.txt
i02_23598_k_d_160304.txt
i02_23598_k_d_160310.txt
i02_23598_k_d_160311.txt
i02_23598_k_d_160315.txt
i02_23598_k_d_160318.txt
i02_23736_k_d_160224.txt
i02_23736_k_d_160302.txt
i02_23736_k_d_160303.txt
i02_23736_k_d_160315.txt
i02_23736_k_d_160316.txt
i02_23736_k_d_160317.txt
i02_23736_k_d_160321.txt
i02_23736_k_d_160324.txt
i02_24174_k_d_160220.txt
i02_24174_k_d_160301.txt
i02_24174_k_d_160302.txt
i02_24174_k_d_160304.txt
i02_24174_k_d_160310.txt
i02_24174_k_d_160315.txt
i02_24174_k_d_160318.txt
i02_24498_k_d_160224.txt
i02_24498_k_d_160301.txt
i02_24498_k_d_160304.txt
i02_24498_k_d_160310.txt
i02_24498_k_d_160317.txt
i02_24498_k_d_160318.txt
i02_24541_k_d_160325.txt
i02_24582_k_d_160224.txt
i02_24582_k_d_160226.txt
i02_24582_k_d_160301.txt
i02_24582_k_d_160302.txt
i02_24582_k_d_160304.txt
i02_24582_k_d_160310.txt
i02_24582_k_d_160311.txt
i02_24582_k_d_160315.txt
i02_24582_k_d_160316.txt
i02_24582_k_d_160318.txt
i02_24618_k_d_160220.txt
i02_24618_k_d_160301.txt
i02_24618_k_d_160302.txt
i02_24618_k_d_160304.txt
i02_24618_k_d_160310.txt
i02_24618_k_d_160315.txt
i02_24618_k_d_160318.txt
i02_24618_k_d_160322.txt
i02_24618_k_d_160324.txt
i02_24903_k_d_160301.txt
i02_24903_k_d_160302.txt
i02_24903_k_d_160304.txt
i02_24903_k_d_160310.txt
i02_25008_k_d_160224.txt
i02_25008_k_d_160302.txt
i02_25008_k_d_160303.txt
i02_25008_k_d_160309.txt
i02_25008_k_d_160310.txt
i02_25008_k_d_160311.txt
i02_25008_k_d_160317.txt
i02_25008_k_d_160323.txt
i02_25081_k_d_160301.txt
i02_25081_k_d_160302.txt
i02_25081_k_d_160304.txt
i02_25081_k_d_160310.txt
i02_25215_k_d_160224.txt
i02_25215_k_d_160303.txt
i02_25215_k_d_160304.txt
i02_25215_k_d_160315.txt
i02_25215_k_d_160318.txt
i02_25330_k_d_160219.txt
i02_25330_k_d_160224.txt
i02_25401_k_d_160224.txt
i02_25401_k_d_160302.txt
i02_25401_k_d_160303.txt
i02_25401_k_d_160316.txt
i02_25493_k_d_160224.txt
i02_25493_k_d_160301.txt
i02_25493_k_d_160302.txt
i02_25493_k_d_160316.txt
i02_25504_k_d_160301.txt
i02_25504_k_d_160302.txt
i02_25504_k_d_160304.txt
i02_25504_k_d_160310.txt
i02_25504_k_d_160315.txt
i02_25504_k_d_160318.txt
i02_25777_k_d_160301.txt
i02_25777_k_d_160302.txt
i02_25777_k_d_160304.txt
i02_25777_k_d_160310.txt
i02_25777_k_d_160315.txt
i02_25777_k_d_160316.txt
i02_25834_k_d_160224.txt
i02_25834_k_d_160315.txt
i02_27003_k_d_160220.txt
i02_27003_k_d_160224.txt
i02_27003_k_d_160225.txt
i02_27003_k_d_160226.txt
i02_27003_k_d_160301.txt
i02_27003_k_d_160302.txt
i02_27003_k_d_160303.txt
i02_27003_k_d_160310.txt
i02_27003_k_d_160311.txt
i02_27003_k_d_160315.txt
i02_27003_k_d_160316.txt
i02_27003_k_d_160317.txt

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set "In=F:\1"
Set "Out=F:\2"
Set "Mask=*.txt"

FOR %%f IN ("%In%\%Mask%") DO (
Set "Name=%%~nf"
Set "Dt=!Name:~-6!
rem Если надо иметь наименования папок в формате ГГММДД cледующую строку закомментировать или удалить
"Set "Dt=!Dt:~4,2!!Dt:~2,2!!Dt:~0,2!"
If Not Exist "%Out%\!Dt!" Md "%Out%\!Dt!"
Move /Y "%%f" "%Out%\!Dt!\" >nul 2>nul

megaloman 01-04-2016 12:54 2622023

Вложений: 1
mychman, Не вижу закрывающей скобки. Возьмите мой файл, переименуйте его с расширением .bat. На Вашем диске F: cоздастся файл kuku.txt, предоставьте мне.

Foreigner 01-04-2016 13:03 2622030

Код:

@echo off
setlocal

pushd "E:\Delete\1" || goto:eof

for %%i in (*.txt) do call:0 "%%i"
popd
goto:eof

:0

set "name=%~n1"
set "name=%name:_USD=%"

for %%i in (%name:_=,%) do set "dir=%%i"

2>nul md "E:\Delete\out\%dir%"

copy %1 "E:\Delete\out\%dir%"


mychman 01-04-2016 13:04 2622032

Вложений: 1
Результат во вложении

megaloman 01-04-2016 13:09 2622034

mychman, А файлы рассортировались по папкам?

mychman 01-04-2016 16:05 2622154

Цитата:

Цитата megaloman
А файлы рассортировались по папкам? »

Да, спасибо большое!
Задача решена.


Время: 20:34.

Время: 20:34.
© OSzone.net 2001-