CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Ответить
 • Просмотры: 1
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Iska »

Цитата Iska:



Попробуйте так:
CMD/BAT - [решено] Копирование каталога с исключениями и переименованием




Скопировало успешно, но символьная ссылка для копий на папку Parameters не создалась. Папка Parameters лежит в Folder0 и ссылка на неё нужна для всех копий. Ругается на неправильный синтакс команды mklink, ошибок команды копирования нет.

Вроде должно быть так (для коппи папки)

cd C:\Catalog\FolderN

mklink /d Parameters "C:\Ctalog\Folder0\Parameters"
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Iska »

Hollou, я в любом случае не смогу проверить работу оригинальной утилиты «mklink.exe» по той простой причине, что у меня Windows XP (то есть — создать Symbolic Link я могу, могу посмотреть, куда она указывает, а вот воспользоваться ею возможности нет). Синтаксис утилиты я брал отсюда:
Mklink
и отсюда:
NTFS symbolic link - Wikipedia, the free encyclopedia
.



Вот полученный мною результат:


читать дальше »




Код:

Код: Выделить всё

╔═════════════════════════ C:\Catalog ═══╤══════╤════════╤═════╗
║и                 Имя                   │Размер│  Дата  │Время║
║⌂..                                     │ Вверх│24.02.12│08:18║
║├Folder0                                │ Папка│24.02.12│08:09║
║├Folder1                                │ Папка│24.02.12│08:18║
║├Folder2                                │ Папка│24.02.12│08:18║
║├Folder3                                │ Папка│24.02.12│08:18║
║├Folder4                                │ Папка│24.02.12│08:18║
║├Folder5                                │ Папка│24.02.12│08:18║
║├Folder6                                │ Папка│24.02.12│08:18║
…



Код:

Код: Выделить всё

╔═════════════════════ C:\Catalog\Folder1 ══════╤════════╤═════╗
║и                 Имя                   │Размер│  Дата  │Время║
║⌂..                                     │ Вверх│24.02.12│08:18║
║├01                                     │ Папка│24.02.12│08:18║
║├02                                     │ Папка│24.02.12│08:18║
║├03                                     │ Папка│24.02.12│08:18║
║├Parameters                             │Ссылка│24.02.12│08:18║
║¿7-zip                               chm│ 92392│18.04.11│20:43║
║░Descript                            ion│    22│24.02.12│08:08║
║                                        │      │        │     ║
…



Код:

Код: Выделить всё

╔══════════════════════════ Атрибуты ══════════════════════════╗
║                  Изменить файловые атрибуты                  ║
║                          Parameters                          ║
║ Ссылка:      C:\Catalog\Folder0\Parameters                   ║
╟──────────────────────────────────────────────────────────────╢
║ Владелец:    @@@@@@@@@@                                      ║
╟──────────────────────────────────────────────────────────────╢
║ [ ] Только для чтения         [ ] Неиндексируемый            ║
║ [ ] Архивный                  [ ] Разреженный                ║
║ [ ] Скрытый                   [ ] Временный                  ║
║ [ ] Системный                 [ ] Автономный                 ║
║ [ ] Сжатый                    [x] Точка повторной обработки  ║
║ [ ] Зашифрованный             [ ] Виртуальный                ║
╟──────────────────────────────────────────────────────────────╢
║                                     ДД.ММ.ГГГГГ чч:мм:сс.мс  ║
║ Время последней записи:             24.02.2012  08:18:39.812 ║
║ Время создания:                     24.02.2012  08:18:39.812 ║
║ Время последнего доступа:           24.02.2012  08:18:39.812 ║
║ Время изменения:                    24.02.2012  08:18:39.812 ║
║              [ Исходное ] [ Текущее ] [ Сброс ]              ║
╟──────────────────────────────────────────────────────────────╢
║ [ ] Обрабатывать вложенные папки                             ║
╟──────────────────────────────────────────────────────────────╢
║       { Установить } [ Системные свойства ] [ Отмена ]       ║
╚══════════════════════════════════════════════════════════════╝







Попробуйте прочитать справку и поправить код так, чтобы ссылка корректно создавалась.



Ну, или выложите результат:



Код:

Код: Выделить всё

mklink.exe /?

— посмотрим.



P.S. Вот ещё результат:


читать дальше »




Код:

Код: Выделить всё

C:\Catalog\Folder1>fsutil.exe reparsepoint query Parameters


Цитата:





Код:

Код: Выделить всё

Значение тега повторной обработки: 0xa000000c
Значение тега: Майкрософт
Значение тега: Суррогат имени
GUID: {00420000-0044-003A-0000-00005C003F00}
Длина данных: 0x0000008c
Данные повторной обработки:
0000:  3f 00 5c 00 43 00 3a 00 5c 00 43 00 61 00 74 00  ?.\.C.:.\.C.a.t.
0010:  61 00 6c 00 6f 00 67 00 5c 00 46 00 6f 00 6c 00  a.l.o.g.\.F.o.l.
0020:  64 00 65 00 72 00 30 00 5c 00 50 00 61 00 72 00  d.e.r.0.\.P.a.r.
0030:  61 00 6d 00 65 00 74 00 65 00 72 00 73 00 00 00  a.m.e.t.e.r.s...
0040:  43 00 3a 00 5c 00 43 00 61 00 74 00 61 00 6c 00  C.:.\.C.a.t.a.l.
0050:  6f 00 67 00 5c 00 46 00 6f 00 6c 00 64 00 65 00  o.g.\.F.o.l.d.e.
0060:  72 00 30 00 5c 00 50 00 61 00 72 00 61 00 6d 00  r.0.\.P.a.r.a.m.
0070:  65 00 74 00 65 00 72 00 73 00 00 00 00 00 00 00  e.t.e.r.s.......
0080:  00 00 00 00 00 00 00 00 00 00 00 00              ............
Аватара пользователя
Hollou

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Hollou »



Но толку то от этой пикчи. Изображение Я не очень силён в написании батников. Попробую разобраться.



Ещё вопрос: можете ли вы состряпать батник с простым копированием папок без исключений и символьных ссылок. Теже 29 копий папки Folder0 в одном с ней каталоге.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Iska »

Hollou, аналогично.



Я добавил в код «echo» для визуальной проверки строки с «mklink.exe»:



Код:

Код: Выделить всё

	…
	echo mklink.exe /d "%sDestFolder%\%LastPartName:~0,-1%%%i\%sExcludeFolder%" "%sSourceFolder%\%sExcludeFolder%"
	mklink.exe /d "%sDestFolder%\%LastPartName:~0,-1%%%i\%sExcludeFolder%" "%sSourceFolder%\%sExcludeFolder%"
)
…

Вижу при исполнении:


Цитата:





Код:

Код: Выделить всё

…
mklink.exe /d "C:\Catalog\Folder1\Parameters" "C:\Catalog\Folder0\Parameters"
…





У Вас «mklink.exe» выводит какие-либо сообщения об ошибках?
Аватара пользователя
Hollou

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Hollou »

Нет, но символическая ссылка не появляется. Выводится тоже самое, что и у вас.
Аватара пользователя
Hollou

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Hollou »

Hollou, тогда я бессилен, пока не доберусь до машины с более свежей ОС.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Iska »

Большое спасибо за приложенные усилия и потраченное время. Но не забывайте про мой вопрос, пожалуйста. Сам вряд ли допилю.
Аватара пользователя
Hollou

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Hollou »

Допилил для 2ой задачи.


>';}else{ div.style.display = 'none'; this.innerHTML = 'Вот >>';} return false">Вот >>




Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=
set sDestFolder=
call :GetLastPartName "%sSourceFolder%"
call :GetTemporaryName
for /l %%i in (1, 1, 29) do (
	xcopy.exe "%sSourceFolder%" "%sDestFolder%\%LastPartName:~0,-1%%%i\" /e /f /h /r /k /y
)
endlocal
PAUSE
rem ==========================================================================
rem ==========================================================================
:GetLastPartName
    setlocal enableextensions enabledelayedexpansion
    set sLastPart=%~nx1
    set sProcName=%~0
    endlocal & set %sProcName:~4%=%sLastPart%
    exit /b 0
rem ==========================================================================
rem ==========================================================================
rem Функция GetTemporaryName()
rem 
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
    setlocal enableextensions enabledelayedexpansion
:NextName
    set sTempName=%temp%\temp%random%.tmp
    if exist "%sTempName%" goto :NextName
    set sProcName=%~0
    endlocal & set %sProcName:~4%=%sTempName%
    exit /b 0
rem ==========================================================================








Вроде всё порядком.



Кривоватое решение для первой задачи (слегка изменил строку с мклинк):



Код:

Код: Выделить всё

rem	echo mklink.exe /d "%sDestFolder%\%LastPartName:~0,-1%%%i\%sExcludeFolder%" "%sSourceFolder%\%sExcludeFolder%"
cd "%sDestFolder%\%LastPartName:~0,-1%%%i"
mklink /d %sExcludeFolder% "%sSourceFolder%\%sExcludeFolder%"

Пашет только с отрабатыванием из копированной папки.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Iska »

Hollou, добрался, проверил.



При исполнении «mklink.exe» на Windows Server 2008 R2 вижу сообщение об ошибке:



Код:

Код: Выделить всё

Ошибка в синтаксисе команды.

Hollou, уберите в пакетном файле из
CMD/BAT - [решено] Копирование каталога с исключениями и переименованием
точку и расширение у mklink:



Код:

Код: Выделить всё

	mklink.exe /d "%sDestFolder%\%LastPartName:~0,-1%%%i\%sExcludeFolder%" "%sSourceFolder%\%sExcludeFolder%"

И всё заработает.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Копирование каталога с исключениями и переименованием

Сообщение Iska »

Из письма в ПМ:


Цитата Hollou:



Не могли бы вы переделать скриптец под создание 64-ёх копий папки?



Навскидку — заменить «29» в



Код:

Код: Выделить всё

for /l %%i in (1, 1, 29) do (

на «64». Не проверялось.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»