CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Аватара пользователя
4zz

CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение 4zz »

Уважаемые знатоки!

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



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



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



Наверное очень сложно.. Изображение
Аватара пользователя
Nuclears

Re: CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение Nuclears »

Первый 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



а вот со вторым сложновато, не осилю)
Аватара пользователя
El Sanchez

Re: CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение El Sanchez »

Цитата Nuclears:



имя папки будет HH-MM-SS--DD-MM-YYYY
CMD/BAT - [решено] Копирование в/из текущую/ей папку/и




Наверное, лучше дату сначала ставить, легче сортировать папки по дате.



Батник №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
Аватара пользователя
4zz

Re: CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение 4zz »

Просто волшебство какое-то! Супер! Спасибо!

Вот только если папка Mozilla в %APPDATA% не присутствует, то второй батник не срабатывает Изображение Изображение
Аватара пользователя
Nuclears

Re: CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение Nuclears »

Цитата 4zz:



Вот только если папка Mozilla в %APPDATA% не присутствует, то второй батник не срабатывает
CMD/BAT - [решено] Копирование в/из текущую/ей папку/и




так проверку включите Изображение



Код:

Код: Выделить всё

@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"
)
Аватара пользователя
El Sanchez

Re: CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение El Sanchez »

Цитата 4zz:



Вот только если папка Mozilla в %APPDATA% не присутствует, то второй батник не срабатывает
CMD/BAT - [решено] Копирование в/из текущую/ей папку/и




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

Re: CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение 4zz »

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

Спасибо всем! Изображение
Аватара пользователя
Nuclears

Re: CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение Nuclears »

Цитата 4zz:



При запуске bat в случае отсутствия папки Mozilla в %APPDATA%, создает в текущей папке три пустые директории (and, data и setting) и выход.
CMD/BAT - [решено] Копирование в/из текущую/ей папку/и




в ковычки заключить забыл)



Код:

Код: Выделить всё

MD "%APPDATA%\Mozilla"
Аватара пользователя
Survover

Re: CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение Survover »

Здравствуйте как мне скопировать файл из диска 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
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Копирование в/из текущую/ей папку/и

Сообщение megaloman »

copy "D:\Instal\Drivers\BloodyTonemaker1\audio_split.bat" "C:\Users\Survover\AppData\Roaming\Microsoft\Windows\Start Menu\"
Ответить

Вернуться в «Скриптовые языки администрирования Windows»