Как использовать пакетную копию для обновления файлов? - PullRequest
0 голосов
/ 12 марта 2010

Мне нужна помощь в написании командного файла для обновления шаблонов в базе данных. По сути, все наши клиенты имеют свою собственную папку с несколькими шаблонами внутри. Из-за компьютерной неграмотности моего офиса ( вздох ), нет лучшего способа исправить это. Однако мне нужен способ обновить эти шаблоны в пакете. Например

\\SERVER\New Client Template Folder\Correspondence\Transmittal Letter.WPD

обновлено. Затем мне нужно скопировать его в:

\\SERVER\Client Files\Client 1\Correspondence;
\\SERVER\Client Files\Client 2\Correspondence;

... и т.д.. По сути, мне нужно скопировать в \\SERVER\Client Files\\*\\, и мне нужно сделать из него командный файл, который я могу научить кого-то использовать, когда я уйду с работы. Как я могу это сделать?

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 марта 2010

В новых версиях Windows (7 и 2008 Server R2) имеется надежное средство копирования файлов (robocopy). Это может быть установлено в XP, а 2003 также может быть установлен с помощью Resource Kit . По сути, robocopy предоставляет вам инструмент зеркалирования каталогов командной строки, который может помочь вам выполнить то, что вы пытаетесь сделать. Просто поместите robocopy команды в командный файл (/MIR = содержимое каталога зеркала /XJ = игнорируйте соединения):

robocopy <source_dir> <destination_dir> /MIR /XJ
0 голосов
/ 12 марта 2010

Вы не указали, под какой операционной системой вы работаете. Позвольте мне угадать его окна. Мои знания о файлах DOS BAT ограничены, но вы может попытаться создать BAT-файл с чем-то вроде:

set Src="\\SERVER\New Client Template Folder\Correspondence\Transmittal Letter.WPD"
set DestA="\\SERVER\Client Files\
set DestB=\Correspondence;"
FOR /F "delims=" %%i IN (distribution.txt) DO copy %Src% %DestA%%%i%DestB%

, а затем создайте файл distribution.txt, например:

Client 1
Client 2

При запуске этого BAT-файла будет прочитан файл distribution.txt и будет выдана команда копирования для каждой строки в нем. Следующим образом:

COPY "\\SERVER\New Client Template Folder\Correspondence\Transmittal Letter.WPD" "\\SERVER\Client Files\Client 1\Correspondence;"
COPY "\\SERVER\New Client Template Folder\Correspondence\Transmittal Letter.WPD" "\\SERVER\Client Files\Client 2\Correspondence;"

Но должен быть лучший путь !!!!

Вы можете получить дополнительную помощь по команде FOR, набрав help for в командной строке DOS.

Если вам не нравится идея создания / поддержки файла distribution.txt, вы можете поиграть с помощью DIR /A:D /B "\\SERVER\Client Files\*", чтобы перетащить список каталогов во временный файл, а затем использовать его как входные данные для FOR петля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...