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

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

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

Пользователь


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

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


Уважаемые знатоки!
Помогите написать 2 батника по следующим условиям:

При запуске первого бат - в папке, из которой произведен запуск батника, создается папка с текущей датой и временем, в которую копируется папка Mozilla, со всем содержимым, из скрытой директории %APPDATA%.

При запуске второго - выводится пронумерованный перечень папок с текущей датой, из директории в которой запущен батник, и предлагается "Выберите порядковый номер текущей даты для копирования", а после выбора (1,2,3 и т.д.) производится копирование папки Mozilla, из соответствующей папки с датой, в скрытую папку %APPDATA%, предварительно удалив в этой директории аналогичную папку если она там имеется.

Наверное очень сложно..

Отправлено: 21:25, 18-09-2011

 

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


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

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


Первый CMDшник
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion
set TmpDIR=%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%--%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%
XCOPY "%APPDATA%\Mozilla" %TmpDIR% /S/I/Q/Y >NUL
имя папки будет HH-MM-SS--DD-MM-YYYY

а вот со вторым сложновато, не осилю)
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:25, 19-09-2011 | #2



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

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


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата Nuclears:
имя папки будет HH-MM-SS--DD-MM-YYYY »
Наверное, лучше дату сначала ставить, легче сортировать папки по дате.

Батник №1
Код: Выделить весь код
@Echo Off
Set Output=%DATE%--%TIME:~0,-3%
XCopy /SYQI "%APPDATA%\Mozilla" "%Output::=-%\Mozilla"
Батник №2
Код: Выделить весь код
@Echo Off
SetLocal
For /F "Tokens=1* Delims=:" %%A In ('Dir /B /AD %DATE%*^|FindStr /N .') Do Echo %%A : %%B&Set _%%A=%%B
Set _ 1>nul 2>&1||GoTo :EoF
Set /P "N=Выберите порядковый номер текущей даты для копирования: "
If Defined _%N% RD /S /Q "%APPDATA%\Mozilla" 2>nul&Call XCopy /SYQI "%%_%N%%%\Mozilla" "%APPDATA%\Mozilla"
EndLocal

Последний раз редактировалось El Sanchez, 20-09-2011 в 10:11. Причина: исправление

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:23, 19-09-2011 | #3

4zz 4zz вне форума Автор темы

Пользователь


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

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


Просто волшебство какое-то! Супер! Спасибо!
Вот только если папка Mozilla в %APPDATA% не присутствует, то второй батник не срабатывает

Отправлено: 22:13, 19-09-2011 | #4


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


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

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


Цитата 4zz:
Вот только если папка Mozilla в %APPDATA% не присутствует, то второй батник не срабатывает »
так проверку включите
Код: Выделить весь код
@Echo Off
SetLocal
IF EXIST "%APPDATA%\Mozilla" (
For /F "Tokens=1* Delims=:" %%A In ('Dir /B /AD %DATE%*^|FindStr /N .') Do Echo %%A : %%B&Set _%%A=%%B
Set /P "N=Выберите порядковый номер текущей даты для копирования: "
If Defined _%N% RD /S /Q "%APPDATA%\Mozilla" 2>nul&&Call XCopy /SYQI "%%_%N%%%\Mozilla" "%APPDATA%\Mozilla"
) ELSE (
rem создадим папку %APPDATA%\Mozilla
MD %APPDATA%\Mozilla
rem и вот теперь выполним то, требовалось :)
For /F "Tokens=1* Delims=:" %%A In ('Dir /B /AD %DATE%*^|FindStr /N .') Do Echo %%A : %%B&Set _%%A=%%B
Set /P "N=Выберите порядковый номер текущей даты для копирования: "
If Defined _%N% RD /S /Q "%APPDATA%\Mozilla" 2>nul&&Call XCopy /SYQI "%%_%N%%%\Mozilla" "%APPDATA%\Mozilla"
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:09, 20-09-2011 | #5


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата 4zz:
Вот только если папка Mozilla в %APPDATA% не присутствует, то второй батник не срабатывает »
4zz, я подумал, если удалять нечего в %APPDATA%, значит мозиллы на компе нет и копировать файлы смысла нет, но раз так, то изменил свой предыдущий пост плюс добавил проверку на присутствие папок с текущей датой.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:20, 20-09-2011 | #6

4zz 4zz вне форума Автор темы

Пользователь


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

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


El Sanchez,
Спасибо огромное все работает!!!!

Nuclears,
При запуске bat в случае отсутствия папки Mozilla в %APPDATA%, создает в текущей папке три пустые директории (and, data и setting) и выход.

В связи с тем, что при запущенной программе, часть файлов не копируется (пишет что используется другой программой), добавил принудительное завершение Mozillы
И добавил копирование скрытых, системных файлов, сохранение атрибутов, получилось так:
Батник1:
Код: Выделить весь код
 @echo off
chcp 1251
taskkill.exe /F /IM firefox.exe /T
ping -n 1 -w 5000 192.168.254.254 >nul 
Set Output=%DATE%--%TIME:~0,-3%
XCopy /SEAHYQIRK "%APPDATA%\Mozilla" "%Output::=-%\Mozilla"
pause
Батник2:
Код: Выделить весь код
 @Echo Off
chcp 1251
taskkill.exe /F /IM firefox.exe /T
ping -n 1 -w 5000 192.168.254.254 >nul 
SetLocal
For /F "Tokens=1* Delims=:" %%A In ('Dir /B /AD %DATE%*^|FindStr /N .') Do Echo %%A : %%B&Set _%%A=%%B
Set _ 1>nul 2>&1||GoTo :EoF
Set /P "N=Выберите порядковый номер текущей даты для копирования: "
If Defined _%N% RD /S /Q "%APPDATA%\Mozilla" 2>nul&Call XCopy /SEAHYQIRK "%%_%N%%%\Mozilla" "%APPDATA%\Mozilla"
EndLocal
Спасибо всем!

Последний раз редактировалось 4zz, 20-09-2011 в 14:44.


Отправлено: 12:39, 20-09-2011 | #7


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


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

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


Цитата 4zz:
При запуске bat в случае отсутствия папки Mozilla в %APPDATA%, создает в текущей папке три пустые директории (and, data и setting) и выход. »
в ковычки заключить забыл)
Код: Выделить весь код
MD "%APPDATA%\Mozilla"
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:02, 20-09-2011 | #8


Аватара для Survover

Ветеран


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

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


Здравствуйте как мне скопировать файл из диска D:\Instal\Drivers\BloodyTonemaker1\audio_split.bat в C:\Users\Survover\AppData\Roaming\Microsoft\Windows\Start Menu\ пробовал вот так но ничего (
copy D:\Instal\Drivers\BloodyTonemaker1\audio_split.bat C:\Users\Survover\AppData\Roaming\Microsoft\Windows\Start Menu\audio_split.bat

-------
Не бойся сказать спасибо ;)


Отправлено: 21:02, 18-01-2017 | #9


Ветеран


Contributor


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

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


copy "D:\Instal\Drivers\BloodyTonemaker1\audio_split.bat" "C:\Users\Survover\AppData\Roaming\Microsoft\Windows\Start Menu\"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 21:12, 18-01-2017 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
(solved) текущую папку в переменную ? mitiya Автоматическая установка Windows 2000/XP/2003 16 13-06-2012 10:23
CMD/BAT - копирование файлов за текущую дату с сервера на сервер 6a6yko Скриптовые языки администрирования Windows 10 21-06-2011 13:00
Интерфейс - Проводник перемещает текущую папку вниз на панели просмотра avmir Microsoft Windows 7 1 22-08-2010 00:14
Как организовать избирательное копирование в расшаренную папку? MikeGl Microsoft Windows NT/2000/2003 3 19-11-2008 00:31
Копирование исходящей почты в Общую папку Loki3D Microsoft Exchange Server 0 01-10-2007 18:11




 
Переход