Компьютерный форум 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=333240)

muslimdogger 17-02-2018 17:54 2798586

копировать файлы по имеющимся путям
 
есть файлы: около 7-10 разных форматов в родительском каталоге. есть txt файл с полными путями и названиями файлов по которым эти файлы нужно раскидать. мне нужен был скрипт который эти файлы скопировал бы по каталогам поменяв названия. подскажите пожалуйста

alpap 18-02-2018 05:22 2798728

muslimdogger,
вот в приведенном варианте как понять к чему привязаться, к расширениям или дополнительно заданным заранее маскам, так как содержимое файла txt, в данном случае, мало о чем говорит
Файл 151309

muslimdogger 18-02-2018 11:50 2798759

megaloman, соответствие устанавливается по расширению файла. то есть 10 разных расширений изначально и они будут копироваться в конечные папки по расширению прописанному в тхт файле с путями, где также указано расширение конечного файла. вот фрагмент тхт файла
Код:

D:\root\detail.vp
D:\root\island.vp
D:\root\glbase.cfg
D:\root\glbosx.cfg
D:\root\lights.rd
D:\root\list.txt
D:\root\makereslists.txt
D:\root\map.txt
D:\root\hall.rw
D:\root\mv_cycle.rs
D:\root\list.cfg
D:\root\cfg\settings.sr
D:\root\cfg\user.cr


megaloman 18-02-2018 11:58 2798761

Цитата:

Цитата muslimdogger
есть txt файл с полными путями ... есть файлы: около 7-10 разных форматов в родительском каталоге »

Пусть один из них tralala.vp. С каким именем (D:\root\detail.vp или D:\root\island.vp как следует из примера тхт файла) его надо копировать (перемещать?)?
Или эти 7-10 файлов,например, detail.vp island.vp glbase.cfg glbosx.cfg lights.rd list.txt итд которые с теми же именами надо копировать (перемещать?)? в указанное в txt место?
Код:

@Echo Off
Set "BoxIn=Z:\update"
Set "Spisok=Z:\update\Files.txt"

FOR /F "usebackq delims=" %%i IN ("%Spisok%") DO (
        If Exist "%BoxIn%\%%~nxi" Copy "%BoxIn%\%%~nxi" "%%i" >nul
)


muslimdogger 18-02-2018 12:40 2798766

имена у конечных файлов разные, нужно скопировать файлы соответственно по изначальным 10расширениям и конечным. расширения должны соответствовать, а имя задаваться по указанному имени в тхт файле. то есть: файлу detail.vp - будет соответствовать 1к файлов в разных папках с именами их тхт файла, но с расширением .vp и так далее для остальных

upd: и если возможно было б хорошо по итогу чтоб батник создал файл с расширениями которых, возможно, не оказалось среди изначально приведенных 10 файлов, но были в тхт файле

muslimdogger 18-02-2018 23:41 2798850

megaloman,
изначально мне дано десять файлов с разными расширениями, примерно следующих:
xxx.vp
yyy.cfg
www.rd
ttt.txt
eee.rw
vvv.rs
ooo.sr
aaa.cr

эти файлы нужно раскидать по папкам, поменяв их названия по соответствию с расширением. например в тхт файле такие адреса:
D:\root\detail.vp
D:\root\island.vp
D:\root\glbase.cfg
D:\root\glbosx.cfg
D:\root\lights.rd
D:\root\list.txt
D:\root\makereslists.txt
D:\root\map.txt
D:\root\hall.rw
D:\root\mv_cycle.rs
D:\root\list.cfg
D:\root\cfg\settings.sr
D:\root\cfg\user.cr

и файл xxx.vp скопируется в D:\root\ с именем detail.vp и island.vp, yyy.cfg в D:\root\ с именем glbase.cfg и glbosx.cfg и т.д..

megaloman 19-02-2018 00:29 2798855

Код:

@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "Spisok=Z:\Soft_In\Files.txt"

FOR /F "usebackq delims=" %%i IN ("%Spisok%") DO (
        If Exist "%BoxIn%\*%%~xi" (
                Md %%~dpi 2>nul
                Copy "%BoxIn%\*%%~xi" "%%i" >nul 2>&1
        ) else (
                Echo %%~xi files not found
        )
)
pause

В Z:\Box_In ваши файлы
xxx.vp
yyy.cfg
www.rd
ttt.txt
eee.rw
vvv.rs
ooo.sr
aaa.cr
В Z:\Soft_In\Files.txt список файлов с путями
Если в списке есть поминание файлов с расширениями, которых нет, расширения отобразятся.
Пути пропишИте свои

muslimdogger 19-02-2018 00:57 2798857

megaloman, спасибо! работает! помогли


Время: 10:41.

Время: 10:41.
© OSzone.net 2001-