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

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

Ответить
Настройки темы
CMD/BAT - [решено] bat. Копирование папок из текущей директории

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


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

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


Здравствуйте.
Как написать батник который копировал бы папки относительно текущей директории, т.е. папки где лежит сам bat-файл? Необходимо:
1. Скопировать из "текущая директория\ folder 111" в "уровень выше текущей директории"
3. Скопировать из "текущая директория\ folder 222" в "C:\Users\User_Name\Documents"


В первом случае надо скопировать папку «folder 111», расположенную директорией ниже в папку директорией выше. Во втором примере папку «folder 222», расположенную директорией ниже в системную папку "Документы".

Отправлено: 20:32, 21-11-2018

 

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


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

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


Цитата Iska:
Покажите реально используемый Вами код, не с «set "GetFolder1=folder 3"», а с тем, что там есть у Вас на самом деле. »
Упростил код до безобразия, и вроде он заработал:
Код: Выделить весь код
XCopy /y /k /r /e ".\Extras\Mouse\Config" "%UserProfile%\Documents\BioWare\Mass Effect\Config\"
Попытался дальше углубиться в язык CMD команд, и он не перестает меня удивлять.
Вот выражение аналогичное вышеприведенному, но с обращением к реестру:
Код: Выделить весь код
for /f "tokens=3" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') do set "root_doc=%%~i"
XCopy /y /k /r /e ".\Extras\Mouse\Config" "%root_doc%\BioWare\Mass Effect\Config\"
Теоретически, оба этих выражения должны возвращать один и тот же путь:
C:\Users\Nikolay\Documents\BioWare\Mass Effect\Config
и копировать по этому пути файлы, НО! - в первом случае это работает, а во втором - нет. Во втором варианте создается папка %UserProfile% в директории с батником, и файлы копируются туда. Что я делаю не так?

Отправлено: 22:59, 27-11-2018 | #11



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

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


Ветеран


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

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


Цитата Browning Zed:
Теоретически, оба этих выражения должны возвращать один и тот же путь: »
и практически все как надо работает:
Код: Выделить весь код
@echo off
set "var=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"

for /f "tokens=3" %%a in ('reg query "%var%"^|find /i "Personal"') do call set "root_doc=%%a"
if exist "%root_doc%\BioWare\Mass Effect\Config" echo Вместо echo пишем свою команду xcopy с нужными ключами и путями в "%root_doc%\BioWare\Mass Effect\Config"
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:29, 27-11-2018 | #12


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


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

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


Цитата alpap:
и практически все как надо работает
Получился следующий код:
Код: Выделить весь код
@echo off
set "var=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
for /f "tokens=3" %%a in ('reg query "%var%"^|find /i "Personal"') do call set "root_doc=%%a"
if exist "%root_doc%\BioWare\Mass Effect\Config" (
XCopy /y /k /r /e ".\Extras\Controller\Config "%root_doc%\BioWare\Mass Effect\Config"
)
pause
Но он выдает ошибку интерпретации параметров. Полагаю, что дело в строке с пробелом в пути:
Код: Выделить весь код
if exist "%root_doc%\BioWare\Mass Effect\Config"

Отправлено: 00:01, 28-11-2018 | #13


Ветеран


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

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


Browning Zed, где выдаёт? Закомментируйте временно @echo off посредством rem и покажите результат выполнения в виде текста, обрамив его тэгом code.

Отправлено: 00:25, 28-11-2018 | #14


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


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

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


Код: Выделить весь код
D:\Games\Store\Steam\steamapps\common\Mass Effect>rem @echo off

D:\Games\Store\Steam\steamapps\common\Mass Effect>set "var=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"

D:\Games\Store\Steam\steamapps\common\Mass Effect>for /F "tokens=3" %a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"|find /i "Personal"') do call set "root_doc=%a"

D:\Games\Store\Steam\steamapps\common\Mass Effect>call set "root_doc=%USERPROFILE%\Documents"

D:\Games\Store\Steam\steamapps\common\Mass Effect>if exist "C:\Users\Nikolay\Documents\BioWare\Mass Effect\Config" (XCopy /y /k /r /e ".\Extras\Controller\Config "C:\Users\Nikolay\Documents\BioWare\Mass Effect\Config" )
Ошибка интерпретации параметров

D:\Games\Store\Steam\steamapps\common\Mass Effect>pause
Для продолжения нажмите любую клавишу . . .

Отправлено: 00:35, 28-11-2018 | #15


Ветеран


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

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


Browning Zed, закрывающую кавычку забыли при:
Код: Выделить весь код
if exist "%root_doc%\BioWare\Mass Effect\Config" (
    XCopy /y /k /r /e ".\Extras\Controller\Config" "%root_doc%\BioWare\Mass Effect\Config"
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:29, 28-11-2018 | #16


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


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

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


Цитата Iska:
Browning Zed, закрывающую кавычку »
Да, верно - моя невнимательность, извиняюсь. Теперь все работает как нужно.
Спасибо форумчанам Iska и alpap за помощь. Вопрос можно считать решенным.

Отправлено: 10:27, 28-11-2018 | #17



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Копирование папок с текущей датой +1 день в названии (кроме выходных) Сантей Скриптовые языки администрирования Windows 8 03-03-2015 23:26
CMD/BAT - выводить в текстовый файл список файлов и папок из директории где запущен APTEM267 Скриптовые языки администрирования Windows 2 07-02-2014 06:32
Запуск скрипта из текущей директории lampich Программирование и базы данных 0 28-12-2012 23:56
Win32 API - Копирование всех файлов из директории DaRiYs Программирование и базы данных 4 03-09-2009 23:36
[решено] как добавить путь к текущей директории в reg файл из bat файла ? mitiya Автоматическая установка приложений 7 27-03-2008 16:12




 
Переход