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

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

Ответить
Настройки темы
CMD/BAT - [решено] архив->перенос на флешку->выключение компьютера

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


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

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


добрый день, win7. стоит задача сделать архив из папки, перенести его на флешку и после переноса выключить комп.
к сожалению в данный сами команды не предоставлю,но сделал через 7zip архивирование, через robocopy перенос архива на флешку в папку с датой копирования и выключение компьютера.
вопрос в том, как сделать в bat файле так, чтобы команда запускалась только после выполнения предыдущей?видел start /wait, но я так понял это для других случаев, пока только приметил решение в виде таймаута, но может есть более адекватное решение?

Отправлено: 18:03, 01-03-2020

 

Старожил


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

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


start /wait в том числе и для таких случаев
другие решения:
команда1 & команда2 & команда3 - последовательное выполнение
команда1 && команда2 && команда3 - выполнение следующей команды в случае успешного завершения предыдущей (определяется по кодам возврата и годится для программ, корректно работающих с ними)
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:11, 01-03-2020 | #2



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

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


Ветеран


Contributor


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

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


Цитата nor61k:
как сделать в bat файле так, чтобы команда запускалась только после выполнения предыдущей »
О какой предыдущей команде идёт речь?
Вот вариант создания архива на флэшке.
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=D:\CMD\JS_Host\Дискета_от_книги"

	Set "Arc=C:\Program Files\7-Zip\7zG.exe" 

	Set "Flash="
	FOR /F "usebackq tokens=1 skip=1 delims=:" %%d IN (`"wmic logicaldisk where drivetype="2" get caption | FINDSTR /R /C:"[A-Z]""`) DO Set "Flash=%%d" 
 	If "%Flash%"=="" (Echo Flash Disk not found &Pause &Exit /b 1)

	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d"

	Set "FileOut=%BoxIn::\=#%"
	Set "FileOut=%FileOut::=%"
	Set "FileOut=%Flash%:\%@Tdate:~0,8%_%FileOut:\=^%"

	"%Arc%" a -r "%FileOut%" "%BoxIn%\"
	shutdown /s /f
Exit /B 0
Можно, конечно, создавать архив где-то на внутреннем диске, а затем переносить на флэшку. Но смысл? Понимаю, если надо не переносить, а копировать архив. В норме команды делаются последовательно, одна после другой

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


Последний раз редактировалось megaloman, 01-03-2020 в 20:30.

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

Отправлено: 20:10, 01-03-2020 | #3


Ветеран


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

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


Цитата nor61k:
вопрос в том, как сделать в bat файле так, чтобы команда запускалась только после выполнения предыдущей? »
Вопрос в том, как Вы сделали? Нам отсюда Ваш код не виден. Приведите его.

Цитата megaloman:
Можно, конечно, создавать архив где-то на внутреннем диске, а затем переносить на флэшку. Но смысл? »
Обычно это выходит намного быстрее.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:17, 01-03-2020 | #4


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


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

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


Это не готовый код, просто пример.
Вы можете использовать мой скрипт чуток поменяв его, он проверяет работу программы циклически с задержкой и в зависимости от того работает программа или нет уже делает действия.
timeout /t xxx /nobreak можно использовать вместо ping, однако тогда будет спамить "таймером"

Код: Выделить весь код
@echo off
title Проверка работы программы

:start_manifest
tasklist|Find /I "7zG.exe" > nul||goto Power_off
ping -n 60 localhost > nul
goto start_manifest

:Power_off
shutdown /s /t 60
exit

Отправлено: 06:11, 04-11-2023 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Powershell v5
Код: Выделить весь код
Compress-Archive "путь\к\папке" "путь\к\архиву\на\флешке.zip"
shutdown.exe /s /f /t 00

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 14:32, 04-11-2023 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - PC -->> Hamachi -->> Android на смартфоне vovikrus Сетевые технологии 10 03-06-2015 11:39
Route/Bridge - Доступ из интернета к видеорегистатору. ИНЕТ > ADSL > LAN1 > LAN2 > ВИДЕОРЕГИСТРАТОР vladsevsk Сетевые технологии 1 23-01-2015 19:34
Видео архив. DV->Pinnacle-> ? ->HDD Bobrov Boris Видео и аудио: обработка и кодирование 2 11-11-2014 22:43
CMD/BAT - как удалить ">" из строки типа “>>…>>c:\program files\dir\mir\doc.skok” akrav Скриптовые языки администрирования Windows 1 14-02-2008 16:35




 
Переход