2014-02-11 2 views
0

Хорошо, вот так вот. Я хочу сделать автоматическую задачу с помощью .bat-файла, чтобы скопировать некоторые файлы с сервера на компьютеры пользователей. Место назначения файлов может быть на разных разделах, но местоположение (по папке) одинаково.Выбор папки Xcopy

Например, у меня есть 1 файл, который я хочу, чтобы скопировать с сервера на C: \ Program Files \ Program или D: \ Program Files \ Program (обратите внимание, что путь, кроме раздела является то же самое)

+1

Должен ли командный файл произвольно выбирать, где копировать? Должен ли он выбираться на основе некоторых критериев? Следует ли спрашивать пользователя? .... –

+0

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

+0

Как пакетный файл примет решение о том, следует ли копировать в C: \ SOMEWHERE или D: \ SOMEWHERE? –

ответ

1

Нечто подобное должно работать, если вы используете его с сервера с правами администратора.

@echo off 
setlocal 

for %%a in (computer1 computer2 computer3) do (
    for %%b in (c d) do (
    if exist "\\%%a\%%b$\Program Files\Program\." (
     xcopy /F /I "yourfile.ext" "\\%%a\%%b$\Program Files\Program" 
    ) 
) 
) 

Если вы используете его с рабочей станции, вы могли бы сделать что-то вроде этого:

@echo off 
setlocal 
for %%a in (c d) do (
    if exist "%%a:\Program Files\Program\." (
     xcopy /F /I "\\Server\Share\yourfile.ext" "%%a:\Program Files\Program" 
) 
) 
+0

Спасибо! Это сработало отлично. Я не знал, как менять разделы –

0

Вы имеете в виду базовую копию из одного каталога в другой.

Для файла

@echo off 
echo copying files 
copy /Y C:\Program Files\Program\TheFileYouWantToCopy.file D:\Program Files\Program\TheFileYouWantToCopy.file 
echo copying files done. 
pause 
goto :eof 

Заменить "TheFileYouWantToCopy.file" с, как он говорит, что файл, который вы хотите скопировать.

Для реж

Если вы хотите скопировать реж из одного места в другое использование этого:

@Echo Off 
Echo Please Press "d" 
xcopy "C:\Program Files\Program" "D:\Program Files\Program" 
Echo done 
pause 
goto :eof 

В ответ на комментарии:

Попробуйте% SystemDrive% \ Program Files \ Program как ваш путь. % SystemDrive% - это то, где система хранит свои файлы, и может быть что угодно: от A:/до Z: /.

+0

Нет. Я хочу скопировать файл в ту же папку назначения, что и «...: \ Program Files \ Program», где ... может быть C или D. Дело в том, что у пользователей установлена ​​эта программа на любом разделе и Я не знаю, поэтому синтаксис xcopy должен иметь общую форму. –

+1

См. Правки выше. – 09stephenb

1

Это будет скопировать несколько файлов:

copy "\\server\share\*.txt" "%ProgramFiles%\target folder\" 

Это будет скопировать папку дерево:

xcopy "\\server\share\folder\*.*" "%ProgramFiles%\target folder\" /s/h/e/k/f/c/z 

%ProgramFiles% переменная содержит расположение папки файлов программ установки.

Смежные вопросы