Показать полную графическую версию : [решено] архив->перенос на флешку->выключение компьютера
добрый день, win7. стоит задача сделать архив из папки, перенести его на флешку и после переноса выключить комп.
к сожалению в данный сами команды не предоставлю,но сделал через 7zip архивирование, через robocopy перенос архива на флешку в папку с датой копирования и выключение компьютера.
вопрос в том, как сделать в bat файле так, чтобы команда запускалась только после выполнения предыдущей?видел start /wait, но я так понял это для других случаев, пока только приметил решение в виде таймаута, но может есть более адекватное решение?
start /wait в том числе и для таких случаев
другие решения:
команда1 & команда2 & команда3 - последовательное выполнение
команда1 && команда2 && команда3 - выполнение следующей команды в случае успешного завершения предыдущей (определяется по кодам возврата и годится для программ, корректно работающих с ними)
megaloman
01-03-2020, 20:10
как сделать в 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
Можно, конечно, создавать архив где-то на внутреннем диске, а затем переносить на флэшку. Но смысл? Понимаю, если надо не переносить, а копировать архив. В норме команды делаются последовательно, одна после другой
вопрос в том, как сделать в bat файле так, чтобы команда запускалась только после выполнения предыдущей? »
Вопрос в том, как Вы сделали? Нам отсюда Ваш код не виден. Приведите его.
Можно, конечно, создавать архив где-то на внутреннем диске, а затем переносить на флэшку. Но смысл? »
Обычно это выходит намного быстрее.
Это не готовый код, просто пример.
Вы можете использовать мой скрипт чуток поменяв его, он проверяет работу программы циклически с задержкой и в зависимости от того работает программа или нет уже делает действия.
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
DJ Mogarych
04-11-2023, 14:32
Powershell v5
Compress-Archive "путь\к\папке" "путь\к\архиву\на\флешке.zip"
shutdown.exe /s /f /t 00
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.