Войти

Показать полную графическую версию : проблема с параметром /exclude


Voodoo_smile
26-02-2018, 17:41
День Добрый! Я наверно повторюсь, но все что смог найти перечитал и перепробовал, не понятно что я делаю не так, но исключить файлы по заданному расширению не получается, помогите пожалуйста.
Задача батника при запуске создавать скажем на диске E: папку с сегодняшним числом, в ней папку Downloads...и другие, а уже в них копировать все содержимое исключая файлы с нужным расширением....код ниже, в голос не смейтесь ,) первый раз такой делаю...

@ECHO OFF
Chcp 1251
set datetemp=%date:~-10%
REM ------Создаем папки---------
md e:\BackUp\%datetemp%
md e:\BackUp\%datetemp%\[OneDrive]
md e:\BackUp\%datetemp%\[Documents]
md e:\BackUp\%datetemp%\[Desktop]
md e:\BackUp\%datetemp%\[Downloads]
md e:\BackUp\%datetemp%\[Browser]
md e:\BackUp\%datetemp%\[Browser]\Local
md e:\BackUp\%datetemp%\[Browser]\Local\Mozilla
md e:\BackUp\%datetemp%\[Browser]\Local\Opera
md e:\BackUp\%datetemp%\[Browser]\Local\Google
md e:\BackUp\%datetemp%\[Browser]\Roaming
md e:\BackUp\%datetemp%\[Browser]\Roaming\Mozilla
md e:\BackUp\%datetemp%\[Browser]\Roaming\Opera
md e:\BackUp\%datetemp%\[Browser]\Roaming\Google
md e:\BackUp\%datetemp%\[Messenger]
md e:\BackUp\%datetemp%\[Messenger]\Local
md e:\BackUp\%datetemp%\[Messenger]\Local\Viber
md e:\BackUp\%datetemp%\[Messenger]\Roaming
md e:\BackUp\%datetemp%\[Messenger]\Roaming\Skype
md e:\BackUp\%datetemp%\[Messenger]\Roaming\ViberPC

echo Папки созданы. Копируем ?
pause
REM ----------------------Копируем Документы---------------------------
xcopy "%HOMEPATH%\OneDrive\*.*" "e:\BackUp\%datetemp%\[OneDrive]\" /E /H /R /Y /D /O /X /exclude:e.txt
xcopy "%HOMEPATH%\Documents\*.*" "e:\BackUp\%datetemp%\[Documents]\" /E /H /R /Y /D /O /X /exclude:e.txt
xcopy "%HOMEPATH%\Desktop\*.*" "e:\BackUp\%datetemp%\[Desktop]\" /E /H /R /Y /D /O /X /exclude:e.txt
xcopy "%HOMEPATH%\Downloads\*.*" "e:\BackUp\%datetemp%\[Downloads]\" /E /H /R /Y /D /O /X /exclude:e.txt
REM ----------------------Копируем Браузеры из Local--------------------
xcopy "%LOCALAPPDATA%\Mozilla\*.*" "e:\BackUp\%datetemp%\[Browser]\Local\Mozilla\" /E /H /R /Y /D /O /X
xcopy "%LOCALAPPDATA%\Opera Software\*.*" "e:\BackUp\%datetemp%\[Browser]\Local\Opera\" /E /H /R /Y /D /O /X
xcopy "%LOCALAPPDATA%\Google\*.*" "e:\BackUp\%datetemp%\[Browser]\Local\Google\" /E /H /R /Y /D /O /X
REM ----------------------Копируем Браузеры из Roaming--------------------
xcopy "%APPDATA%\Mozilla\*.*" "e:\BackUp\%datetemp%\[Browser]\Roaming\Mozilla\" /E /H /R /Y /D /O /X
xcopy "%APPDATA%\Opera Software\*.*" "e:\BackUp\%datetemp%\[Browser]\Roaming\Opera\" /E /H /R /Y /D /O /X
xcopy "%APPDATA%\Google\*.*" "e:\BackUp\%datetemp%\[Browser]\Roaming\Google\" /E /H /R /Y /D /O /X
pause


%HOMEPATH% - так как запускаться будет на разных машинах, пользователи везде разные
Проблемы: /exclude:e.txt - не работает, хоть файл e.txt лежит рядом с баником, ругается на в нем 2 строчки .torret и .lnk
и вторая проблема из папки %HOMEPATH%\OneDrive\ - копируется только папка Desktop, остольные не пустые....

Пожалуйста направьте меня в нужную сторону.....
Спасибо

mwz
26-02-2018, 17:51
из папки %HOMEPATH%\OneDrive\ »

Надо бы записывать в виде
%HOMEDRIVE%%HOMEPATH%\.......
Записи же %LOCALAPPDATA% и %APPDATA% правильные.

/exclude:e.txt - не работает, хоть файл e.txt лежит рядом с баником »

Лежать рядом с батником недостаточно: каталог, из которого запускается батник, и рабочий каталог батника — это разные вещи.
Чтобы указать, что файл находится в каталоге батника, необходимо использовать конструкцию

/exclude:%~dp0e.txt

megaloman
26-02-2018, 18:22
/exclude:%~dp0e.txt » Надёжнее сделать вначале батника
Pushd "%~dp0"
и затем уже в xcopy прописывать /exclude:e.txt
так как, если в /exclude указать длинный путь да еще и с пробелами, то файл не будет найден

mwz
26-02-2018, 20:24
Pushd "%~dp0e.txt" »

Или точнее — Pushd "%~dp0"? Не соображу...




© OSzone.net 2001-2012