Показать полную графическую версию : [решено] Батник для поиска и копирования
streamrider
21-08-2010, 10:50
Привет всем !!! Вопрос такой кто знает как сделать какой нибудь батник что бы он искал нужную папку а затем копировал ее со всем содержимым в другое место . Я сам к сожалению не знаю как это делается .
streamrider
- где искать?.. в папке?.. на заданном диске?.. только на локальных?.. включая сменные?.. включая сетевые?
- по каким параметрам искать папку? по полному имени? по части имени?.. по содержимому?...
- касаемо простого копирования заданной папки, вопрос поднимался неоднократно:
CMD/BAT - [решено] помогите написать батник для копирования папки (http://forum.oszone.net/showthread.php?t=136900)
CMD/BAT - копирование по сети с заменой на новые файлы. (http://forum.oszone.net/showthread.php?t=180460)
streamrider
22-08-2010, 06:51
Искать нужно только на локальной папке на диске C и копировать ее на рабочий стол
А как сделать что бы он искал на нужном диске по маске ?
как сделать что бы он искал на нужном диске по маске »пример - поиск на C: папок, имя которых начинается и заканчивается на "W":DIR /B/S/AD C:\W*W
Devils0411
22-08-2010, 18:20
попутный вопрос по поводу папок.. как записать в переменную, имя папки в которой запускается пакетник?
Devils0411,
Set "$Path=%~dp0"
Devils0411
22-08-2010, 18:36
deepred, Вы не совсем правильно поняли мой вопрос... Мне нужно: имя папки в которой запускается пакетник », а не путь до пакетника.
for %%i in (.) do set DIR=%%~nxi
echo %DIR%& pause>nul
ADD: это имя текущего каталога, если в процессе работы батника каталог меняется, можно так:
for %%i in ("%~dp0.") do set DIR=%%~nxi
echo %DIR%& pause>nul
имя папки в которой запускается пакетник »
Set CurrentDir=%CD%
Devils0411
23-08-2010, 17:46
NiOl, Вы также не поняли суть вопроса, как и deepred. Мне требуется: имя папки в которой запускается пакетник, а не путь. amel27 написал именно то, что необходимо.. Но все равно спасибо за проявленный интерес.
P.S. Кстати, предложенные варианты NiOl и deepred работают только локально. Если же запускать в сетевой папке, то имя папки указывается неверно. Данный код:
for %%i in ("%~dp0.") do set DIR=%%~nxi
echo %DIR%& pause>nul
Корректно отображает как локальное имя папки, так и сетевое. Т.е. где бы не запускался данный код, отображение имени будет правильным.
P.S. Кстати, предложенные варианты NiOl и deepred работают только локально. Если же запускать в сетевой папке, то имя папки указывается неверно. »
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001
Или, для текущего пользователя — HKCU\…
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.