Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - копирование определенных папок без "мусора"

Ответить
Настройки темы
CMD/BAT - копирование определенных папок без "мусора"

Аватара для cher

ветеринар


Сообщения: 1518
Благодарности: 168


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


В папке c:\updat есть 4 папки.1,2,3,temp и множество файлов различного расширения.
Надо скопировать только папки 1,2,3 в папку f:\3
Как не копировать папку temp "смог", а вот файлы ... исключить из копирования не могу(маску по названиям даже не пытался-слишком много).(ну лузер в батанике, чеж теперь )
использовал xcopy и robocopy. через for тоже запутался.
насколько могу судить ... просто не могу "сделать" правильную маску.

Отправлено: 21:17, 09-11-2011

 

Аватара для cher

ветеринар


Сообщения: 1518
Благодарности: 168

Профиль | Сайт | Отправить PM | Цитировать


Цитата xGETSx:
/XA:NET »
это что?
Цитата xGETSx:
ATTRIB +I »
а если они в виду защищенности не захотят себя "дополнять"?

Цитата xGETSx:
"c:\updat\temp" "c:\updat\1" "c:\updat\2" "c:\updat\3" »
- во блин.....еще бы их в одну маску.. типа "c:\updat\1,2,3,temp"

-------
Коми форум


Последний раз редактировалось cher, 09-11-2011 в 23:24.


Отправлено: 23:19, 09-11-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 14
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата cher:
это что? »
Это исключение по типу атрибута. NET это тоже самое что и I, только для robocopy
Цитата cher:
во блин.....еще бы их в одну маску.. типа "c:\updat\1,2,3,temp" »
Как я уже писал
Цитата:
Robocopy can not exclude files matching a wildcard including a directory e.g. /XF pictures\*.jpg generates an error.
Цитата cher:
а если они в виду защищенности не захотят себя "дополнять"? »
Это как? Read Only не поможет.

Все равно атрибут добавится если запускать от имени администратора. И если владелец файла - админ или пользователь данного компа.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:37, 09-11-2011 | #12


Аватара для cher

ветеринар


Сообщения: 1518
Благодарности: 168

Профиль | Сайт | Отправить PM | Цитировать


xGETSx, Ок! Спасибо! кое, что понял.
в завершение- а если, через for -robocopy "прибить". Чисто теоретически понимаю, что возможно... даже и с xcopy. Чисто практически "мыслей" не хватает.

-------
Коми форум


Отправлено: 23:47, 09-11-2011 | #13


Новый участник


Сообщения: 14
Благодарности: 5

Профиль | Отправить PM | Цитировать


Команда for
Тут довольно подробно расписано. Я уже от компа просто отошел. Завтра напишу команду полностью с for.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:58, 09-11-2011 | #14


Аватара для cher

ветеринар


Сообщения: 1518
Благодарности: 168

Профиль | Сайт | Отправить PM | Цитировать


xGETSx, "мануал" по for то не проблемно.,но ...файлы "выкинуть" не смог. Папку temp без проблем.
без del.-не "рекурсивно".

-------
Коми форум


Отправлено: 00:05, 10-11-2011 | #15


Новый участник


Сообщения: 14
Благодарности: 5

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
for /D %%i in ("c:\updat") do xcopy /Y "%~dpi\*" "f:\3\%i\*"
Но я не уверен. Пишу с телефона вообще


Если в папках есть еще папки - можно попробовать
Код: Выделить весь код
for /D /R %%i in ("c:\updat") do xcopy /Y "%~dpi\*" "f:\3\%i\*"
Или
Код: Выделить весь код
for /R %%i in ("c:\updat") do xcopy /Y "%~dpi\*" "f:\3\%i\*"

Последний раз редактировалось xGETSx, 10-11-2011 в 00:20.


Отправлено: 00:15, 10-11-2011 | #16


Аватара для cher

ветеринар


Сообщения: 1518
Благодарности: 168

Профиль | Сайт | Отправить PM | Цитировать


Проверю завтра. Сплю...
%~dpi - в help-е нет... лузеры мы лузеры...
что такое?

-------
Коми форум


Отправлено: 00:24, 10-11-2011 | #17


Новый участник


Сообщения: 14
Благодарности: 5

Профиль | Отправить PM | Цитировать


Если к переменной добавить %~dp, переменная превратится в имя диска и полный путь к файлу.
Не ./2, а D:\1\2\

Последний раз редактировалось xGETSx, 10-11-2011 в 00:43.


Отправлено: 00:35, 10-11-2011 | #18


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата cher:
%~dpi - в help-е нет... лузеры мы лузеры...
что такое? »
Код: Выделить весь код
for /?
читать дальше »
Цитата:
Код: Выделить весь код
Операции подстановки ссылок на переменные команды FOR также расширены.
Допускается применение следующих синтаксических конструкций:

    %~I         - из переменной %I удаляются обрамляющие кавычки (")
    %~fI        - переменная %I расширяется до полного имени файла
    %~dI        - из переменной %I выделяется только имя диска
    %~pI        - из переменной %I выделяется только путь к файлу
    %~nI        - из переменной %I выделяется только имя файла
    %~xI        - из переменной %I выделяется расширение имени файла
    %~sI        - полученный путь содержит только короткие имена
    %~aI        - переменная %I расширяется до атрибутов файла
    %~tI        - переменная %I расширяется до даты /времени файла
    %~zI        - переменная %I расширяется до размера файла
    %~$PATH:I   - проводится поиск по каталогам, заданным в переменной
                   среды PATH, и переменная %I заменяется на полное
                   имя первого найденного файла.  Если переменная PATH 
                   не определена или в результате поиска не найден ни
                   ни один файл, то этот модификатор заменяется на пустую
                   строку

При объединении нескольких операторов можно получить следующие результаты:

    %~dpI       - переменная %I заменяется только на имя диска и путь
    %~nxI       - переменная %I заменяется только на имя файла и его 
                   расширение
    %~fsI       - переменная %I заменяется только на полный путь с 
                   краткими именами
    %~dp$PATH:I - проводится поиск по каталогам, заданным в переменной
                   среды PATH, и переменная %I заменяется на имя диска
                   и путь к первому найденному файлу.
    %~ftzaI     - переменная %I заменяется на строку, выдаваемую
                   командой DIR

В приведенных выше примерах переменные %I и PATH можно заменить на
любые другие допустимые значения. В таких синтаксических конструкциях 
за символами %~ может следовать любое имя переменной цикла FOR. 
Рекомендуется использовать заглавные буквы для имен таких переменных, 
например, %I, что делает их более заметными, а также позволяет отличать 
их от обозначений модификаторов, которые не различают используемый регистр.

Есть и в помощи.

читать дальше »
Windows XP:
Цитата:
Подстановка переменных
Были расширены модификаторы подстановок для ссылок на переменные в for. Приведенная ниже таблица перечисляет варианты синтаксических конструкций (на примере переменной I).

Переменная с модификатором Описание
%~I Расширение %I, которое удаляет окружающие кавычки ("").
%~fI Расширение %I до полного имени пути.
%~dI Замена %I именем диска.
%~pI Замена %I на путь.
%~nI Замена %I одним именем файла.
%~xI Замена %I расширением имени файла.
%~sI Замена путем, содержащим только короткие имена.
%~aI Замена %I атрибутами файла.
%~tI Замена %I временем модификации файла.
%~zI Замена %I размером файла.
%~$PATH:I Поиск в каталогах, перечисленных в переменной среды PATH, и замена %I полным именем первого найденного файла. Если переменная среды не определена или поиск не обнаружил файлов, модификатор выдает пустую строку.

Приведенная ниже таблица перечисляет комбинации модификаторов, которые можно использовать для получения более сложных результатов.

Переменная с объединенными модификаторами Описание
%~dpI Замена %I именем диска и путем.
%~nxI Замена %I именем файла и расширением.
%~fsI Замена %I полным именем пути с короткими именами.
%~dp$PATH:I Поиск в каталогах, перечисленных в переменной среды PATH, и замена %I именем диска и путем первого найденного файла.
%~ftzaI Замена %I строкой, аналогичной результату работы программы dir.

В приведенных выше примерах %I и PATH могут быть заменены другими допустимыми значениями. Допустимое имя переменной for прекращает %~ syntax.

Использование прописных букв в именах переменных, например %I, может улучшить восприятие программы и позволит избежать недоразумений с модификаторами, в которых строчные и прописные буквы не различаются.
Windows 7:
Цитата:
Variable substitution

The following table lists optional syntax (for any variable I).


Variable with modifier Description
%~I
Expands %I which removes any surrounding quotation marks (" ").

%~fI
Expands %I to a fully-qualified path name.

%~dI
Expands %I to a drive letter only.

%~pI
Expands %I to a path only.

%~nI
Expands %I to a file name only.

%~xI
Expands %I to a file name extension only.

%~sI
Expands path to contain short names only.

%~aI
Expands %I to the file attributes of file.

%~tI
Expands %I to the date and time of file.

%~zI
Expands %I to the size of the file.

%~$PATH:I
Searches the directories listed in the PATH environment variable and expands %I to the fully qualified name of the first directory found. If the environment variable name is not defined or the file is not found by the search, this modifier expands to the empty string.

The following table lists modifier combinations that you can use to get compound results.


Variable with combined modifiers Description
%~dpI
Expands %I to a drive letter and path only.

%~nxI
Expands %I to a file name and extension only.

%~fsI
Expands %I to a full path name with short names only.

%~dp$PATH:I
Searches the directories that are listed in the PATH environment variable for %I and expands to the drive letter and path of the first one found.

%~ftzaI
Expands %I to an output line that is like dir.

In the above examples, you can replace %I and PATH with other valid values. A valid for variable name terminates the %~ syntax.

By using uppercase variable names such as %I, you can make your code more readable and avoid confusion with the modifiers, which are not case sensitive.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:04, 11-11-2011 | #19


Новый участник


Сообщения: 3
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


С Вашей задачей у успехом справится CopyMik

например:
copymik.exe c:\Documents d:\DocArchiv /MD buch* progr* important* /MF *.txt *.cpp *.jpg *.bmp /XCD .svn tmp* /XCF *.tmp *.db /OF
Что делает:
Копирует все файлы с масками *.txt *.cpp *.jpg *.bmp из папок с масками buch* progr* important*
при этом не копирует папки с масками .svn tmp*.
и не копирует файлы с масками *.tmp *.db
если файлы уже существуют то перезаписывает их

Отправлено: 13:53, 10-06-2016 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - копирование определенных папок без "мусора"

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Переменные среды папок "Мои рисунки", "Моя музыка" или общие Redew Автоматическая установка Windows 2000/XP/2003 9 03-10-2009 20:43
Интерфейс - [решено] Как по умолчанию в выпадающем меню "вид" стиль распорядка папок всегда стоял"таблица" illusionmgs Microsoft Windows 2000/XP 3 03-09-2008 23:25
Интерфейс - [решено] При просмотре папок в "мой компьютер" и "проводнике" каждая новая папка открывается в mr.R Microsoft Windows 2000/XP 14 07-08-2008 00:33
Разное - Значение папок "Документы", "Изображениея"... пропало BLOOD RAPTOR Microsoft Windows Vista 9 30-05-2008 20:23
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход