|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка наличия файла(ов) в указанных подпапках с выводом сообщения при ошибке |
|
CMD/BAT - [решено] Проверка наличия файла(ов) в указанных подпапках с выводом сообщения при ошибке
|
Stalker_AleX333
Сообщения: n/a |
Народ, выручайте!
Для этих команд нужно предварительно проверить наличие определенных файлов в подпапках (указанных в команде удаления). При отсутствии оных не выполнять данный код и выдать ошибку (в виде заготовленного сообщения) в окне. @cls @echo off :: Копирование отсортированного списка плагинов set "BoxOut=%LOCALAPPDATA%\Skyrim Special Edition" set "FileIn=Plugins.txt" if not exist "%BoxOut%" md "%BoxOut%" copy /y "%FileIn%" "%BoxOut%\" :: Очистка сборки от устаревших файлов setlocal enableextensions enabledelayedexpansion pushd "%~dp0" & ( del /f /q "Data\Static Mesh Improvement.*" "Data\Textures\architecture\windhelm\whruinstonedark2.*" и т.д. popd ) endlocal :: Удаляем сам cmd-шник del "%~dpnx0" |
|
Отправлено: 20:18, 24-08-2017 |
Ветеран Сообщения: 2196
|
Профиль | Отправить PM | Цитировать |
Отправлено: 21:24, 24-08-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Stalker_AleX333
Сообщения: n/a |
Хм... Не пашет. Сообщение выводится вне зависимости от того есть ли искомый(ые) файл(ы) в подпапках.
Да и мне не нужно сначала пытаться удалять файлы, а в случае ошибки выводить что-либо на экран. Достаточно проверки наличия файла(ов) по указанному адресу. Что-то вроде: @cls @echo off :: Проверка доступности файлов игры и копирование отсортированного списка плагинов if exist SkyrimSE.exe set "BoxOut=%LOCALAPPDATA%\Skyrim Special Edition" set "FileIn=Plugins.txt" if not exist "%BoxOut%" md "%BoxOut%" copy /y "%FileIn%" "%BoxOut%\" :: Очистка сборки от устаревших файлов setlocal enableextensions enabledelayedexpansion pushd "%~dp0" & ( del /f /q "Data\Static Mesh Improvement.*" "Data\Textures\architecture\windhelm\whruinstonedark2.*" popd ) endlocal :: Удаляем сам cmd(exe)-шник del "%~dpnx0" :: Если файлы игры не найдены else @color C @echo. @echo ------------------------------------------------------------------ @echo Утилита очистки Silver Raven mods pack от устаревших файлов @echo Пакет обновления до версии 1.2.5 @echo ------------------------------------------------------------------ @echo. @echo. @echo *ВНИМАНИЕ! Данная утилита не предназначена для ручного запуска вне папки с игрой! Перезаупустите приложение из папки с игрой или архив с обновлением для корректной работы. @echo. @echo Примечание: приложение работает в скрытом режиме, без вывода данных в консоль и автоматически удаляется по завершении очистки сборки. @echo. pause exit |
Последний раз редактировалось Stalker_AleX333, 24-08-2017 в 23:59. Отправлено: 23:38, 24-08-2017 | #3 |
Ветеран Сообщения: 2196
|
Профиль | Отправить PM | Цитировать |
Отправлено: 00:01, 25-08-2017 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 00:07, 25-08-2017 | #5 |
Stalker_AleX333
Сообщения: n/a |
Так, что-то я совсем запутался.
Цитата Iska:
sov44, перебирать не придется. Правильное расположение cmd-шника строго известно (в данном случае это папка с игрой), а сканируется лишь одна из ее подпапок. Но можно еще проще. Проверять по её (игры) exe-шнику в той же директории откуда запустили, если его нет - шлем лесом и пишем сообщение в консоль. Вот так, вроде, работает: Скрытый текст
@cls @echo off @color C :: Проверка доступности файлов игры setlocal enableextensions enabledelayedexpansion set "GameExeFile=SkyrimSE.exe" If not exist "%GameExeFile%" ( echo. echo ╔═════════════════════════════════════════════════════════════════╗ echo Утилита очистки Silver Raven mods pack от устаревших файлов echo Пакет обновления до версии 1.2.5 echo ╚═════════════════════════════════════════════════════════════════╝ echo. echo. echo *ВНИМАНИЕ! Данная утилита полностью автоматизирована и не предназначена для ручного запуска вне папки с игрой! Перезаупустите приложение из папки с игрой или архив с обновлением для корректной работы. echo. echo Примечание: приложение работает в скрытом режиме, без вывода данных в консоль и автоматически удаляется по завершении очистки сборки. echo. pause exit ) :: Копирование отсортированного списка плагинов if exist set "BoxOut=%LOCALAPPDATA%\Skyrim Special Edition" set "FileIn=Plugins.txt" if not exist "%BoxOut%" md "%BoxOut%" copy /y "%FileIn%" "%BoxOut%\" :: Очистка сборки от устаревших файлов pushd "%~dp0" & ( del /f /q "Data\Static Mesh Improvement.*" "Data\Textures\architecture\windhelm\whruinstonedark2.*" popd ) endlocal :: Удаляем сам cmd-шник del "%~dpnx0" И да, можно как-нибудь раскрасить только определенные строки, выводимые в консоль, а не все сообщение целиком? |
|
Последний раз редактировалось Stalker_AleX333, 25-08-2017 в 13:55. Отправлено: 00:23, 25-08-2017 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - проверка наличия файла в директории | icetanker | Скриптовые языки администрирования Windows | 11 | 19-10-2014 21:37 | |
VBS/WSH/JS - Проверка наличия файла в папке в случае отсутствия перезагружать компьютер | NickCom | Программирование и базы данных | 4 | 19-08-2013 05:13 | |
CMD/BAT - [решено] автоматическая проверка наличия файла и его шифрование | DorianWolf | Скриптовые языки администрирования Windows | 2 | 10-12-2012 17:31 | |
Любой язык - [решено] Проверка наличия файла на веб-сервере | Vadikan | Скриптовые языки администрирования Windows | 5 | 20-05-2011 01:22 | |
CMD/BAT - [решено] Определение атрибута файла & проверка наличия процесса | user_123 | Скриптовые языки администрирования Windows | 10 | 19-11-2010 16:15 |
|