Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Операционные системы > Windows
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 26.04.2019, 15:43   #1
vitalyoleg
Пользователь
 
Регистрация: 18.10.2018
Сообщений: 16
По умолчанию как изменить программу что-бы копировалить файлы только из папок находящихся внутри tech а не весь диск?

как изменить программу что-бы копировались файлы только из папок находящихся внутри tech а не весь диск?

set to=C:\tech
set mask=*.jpg
if not exist "%to%" md "%to%"
for /f "skip=1" %%i in ('wmic logicaldisk where drivetype^=3 get name') do call :f1 %%i\
exit
:f1
for /r %1 %%j in (.) do call :f2 "%%j"
exit /b
:f2
set n=%~1
set n=%n:~0,-1%
for /f "delims=" %%i in ('dir "%n%%mask%" /a-d /b') do copy /y "%n%%%i" "%to%"
exit /b

Последний раз редактировалось vitalyoleg; 26.04.2019 в 16:14.
vitalyoleg вне форума Ответить с цитированием
Старый 26.04.2019, 15:47   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,095
По умолчанию

Куда копировались? Почему код делает ровно наоборот?
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума Ответить с цитированием
Старый 29.04.2019, 11:54   #3
vitalyoleg
Пользователь
 
Регистрация: 18.10.2018
Сообщений: 16
По умолчанию

необходимо все jpg файлы находящиеся в подпапках в папке tech скопировать в папку tech
vitalyoleg вне форума Ответить с цитированием
Старый 29.04.2019, 13:02   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,263
По умолчанию

Цитата:
Сообщение от vitalyoleg Посмотреть сообщение
необходимо все jpg файлы находящиеся в подпапках в папке tech скопировать в папку tech
я не мастер по командным файлам, но "ломать — не строить"

Поэтому, если совсем по простому, то можно попробовать так:
Код:
set to=C:\tech\
set mask=*.jpg
for /f "delims=" %%i in ('dir "%to%%mask%" /a-d /s /b') do copy /y "%%i" "%to%"
НО!!
косяк первый: файлы, которые лежат в корте папки TECH будут пытаться скопированы сами в себя. Что не выйдет и будет выдано сообщение вида:
Цитата:
Код:
C:\tech>copy /y "C:\tech\1.jpg" "C:\tech\"
Невозможно скопировать файл поверх самого себя.
Скопировано файлов:         0.
косяк второй: если в разных подпапках лежат файлы с одинаковым именем, то будет скопирован только один из файлов (точнее будут скопированы все в одно имя, с перезаписью - поэтому останется только один файл с таким именем).

Последний раз редактировалось Serge_Bliznykov; 29.04.2019 в 13:04.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.04.2019, 13:13   #5
vitalyoleg
Пользователь
 
Регистрация: 18.10.2018
Сообщений: 16
По умолчанию

_____________
vitalyoleg вне форума Ответить с цитированием
Старый 29.04.2019, 13:21   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,263
По умолчанию

Цитата:
Сообщение от vitalyoleg Посмотреть сообщение
_____________
что Вы этим пытались сказать?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.04.2019, 13:21   #7
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,491
По умолчанию

Что и откуда скопировать надо?

Скорее всего это решается намного проще с robocopy.
Alex11223 на форуме Ответить с цитированием
Старый 29.04.2019, 14:39   #8
vitalyoleg
Пользователь
 
Регистрация: 18.10.2018
Сообщений: 16
По умолчанию

спасибо

есть файл goods.xml как скопировать значение тэга <a></a> перед последующим значением тэга <></>

т.е. получить
<a>020701BT</a>
<>710f7fa45c6911e9648d2cfda1bf577 d</>
<a>020701BT</a>
<>cde9bde81a5b11e96b882cfda1bf577 d</>
<a>020701BT</a>
<>d266b9021a5b11e96b882cfda1bf577 d</>
<a>040109GT</a>
<>2af8db480fca11e71a9a14187734140 9</>
<a>040109GT</a>
<>2d2190400fca11e71a9a14187734140 9</>


файл goods.xml

<a>020701BT</a>
<>710f7fa45c6911e9648d2cfda1bf577 d</>
<>cde9bde81a5b11e96b882cfda1bf577 d</>
<>d266b9021a5b11e96b882cfda1bf577 d</>
<a>040109GT</a>
<>2af8db480fca11e71a9a14187734140 9</>
<>2d2190400fca11e71a9a14187734140 9</>
<a>7696</a>
<>670cfeec16b111e6cd8f14187734140 9</>
<a>040109WT</a>
<>247423900fca11e71a9a14187734140 9</>
<>26f38bba0fca11e71a9a14187734140 9</>
<a>7928</a>
<>bb94fcb8024711e6d09d14187734140 9</>
<a>1654-155-26</a>
<>30fb1dbcb39b11e55f8314187734140 9</>
<a>A94</a>
<>300b265a170211e8f09714187734140 9</>
<a>A92/950</a>
<>2a08886a170211e8f09714187734140 9</>
vitalyoleg вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить цвет шрифта с белого на черный на панели задач и в названии файлов и папок, находящихся на рабочем столе? Windpws 8.1. Бахтиёр1916 Windows 4 28.03.2017 19:57
Растянуть Timage(с картинкой внутри) на весь экран монитора. bakanaev Общие вопросы Delphi 3 08.12.2012 19:15
Нужно изменить программу с массивов на типизированные файлы ToType Паскаль, Turbo Pascal, PascalABC.NET 1 22.06.2012 02:03
изменить имя компьютера находящихся в домене Hint_reg Общие вопросы Delphi 2 21.06.2012 10:28
Вычислить количество точек с целочисленными координатами, находящихся внутри кольца, радиусом от R1 до R2>0 ( Паскаль((( ) Дашуля_18 Помощь студентам 4 25.03.2012 23:43