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

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

Ответить
Настройки темы
Любой язык - [решено] Запуск программы если папка не пуста

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


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

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


Доброго дня!
Подскажите, возможен ли запуск программы если в папке есть файлы… В общем.
Например, проверить каталоги C:\test, D:\Test2. И если здесь есть файл, запустить .exe, если папка пуста — ничего не делать/выключить компьютер.

Отправлено: 13:29, 27-04-2024

 

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

fascinating rhythm


Moderator


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

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


powershell
Код: Выделить весь код
if (dir 'C:\test','D:\Test2') {
    & 'C:\Program Files\7-Zip\7z.exe'
}
else {
    & shutdown.exe /s /f /t 0 /d p:0:0
}
Если "ничего не делать", то уберите блок else {}

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

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

Отправлено: 18:36, 27-04-2024 | #2



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

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


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off &Cls
	Set "Box1=Z:\Soft_Arc"
	Set "Box2=Z:\Soft_Out"
	Set Exe1="notepad.exe"
	Set Exe2=shutdown.exe /s /f /t 30

	>nul 2>&1 DIR /B /A:-D "%Box1%" "%Box2%" && (%Exe1% &GoTo :Continue)
rem	>nul 2>&1 DIR /B /A:-D "%Box1%" "%Box2%" && (Start " " %Exe1% &GoTo :Continue)

	%Exe2% &Exit /B

	:Continue
	Echo Здесь можно  написать продолжение скрипта после запуска 1 программы
Pause
Exit /B
Закомментирован вариант продолжения работы скрипта после запуска первой программы без ожидания ее завершения

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

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

Отправлено: 19:49, 27-04-2024 | #3


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


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

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


Цитата DJ Mogarych:
powershell »
Благодарю все работает

megaloman,
Ваш вариант тоже работает, но не так, как хотелось, или я где-то ошибся. Хотелось бы, чтобы программа открывалась, если в одной из папках есть файлы.

Немного изменил ваш код на время тестов. Сейчас tools.exe открываются, если файлы есть folder2, а если только folder1, то notepad.exe.

Код: Выделить весь код
@Echo Off &Cls
	Set "Box1=F:\folder1"
	Set "Box2=F:\folder2"
	Set Exe1="C:\Test\tools.exe"
	Set Exe2="notepad.exe"
	
rem	>nul 2>&1 DIR /B /A:-D "%Box1%" "%Box2%" && (%Exe1% &GoTo :Continue)
	>nul 2>&1 DIR /B /A:-D "%Box1%" "%Box2%" && (Start " " %Exe1% &GoTo :Continue)

	%Exe2% &Exit /B

Pause
Exit /B
А еще удалил строки:
Код: Выделить весь код
: Continue
Echo Здесь можно написать продолжение скрипта, после запуска 1-й программы
чтобы терминал закрывался, после открытия программы

Отправлено: 22:46, 27-04-2024 | #4


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off &Cls
	Set "Box1=Z:\Soft_Arc"
	Set "Box2=Z:\Soft_Out"
	Set Exe1="notepad.exe"
	Set Exe2="Calc.exe"	&rem shutdown.exe /s /f /t 30

	Set /A i1=0, i2=0, i12=0
	>nul 2>&1 DIR /B /A:-D "%Box1%" && Set /A i1=1, i12+=1
	>nul 2>&1 DIR /B /A:-D "%Box2%" && Set /A i2=1, i12+=1
rem	iF %i12% Equ 2 (Start " " %Exe1% &Exit /B)
rem	iF %i12% Equ 1 (Start " " %Exe1% &Exit /B)
rem	iF %i12% Equ 0 (Start " " %Exe2% &Exit /B)
	if %i12% GTR 0 (Start " " %Exe1%) Else (Start " " %Exe2%)
Exit /B
В зависимости от значений i1 i2 i12 можно написать запуск программ в любой комбинации наличия файлов

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

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

Отправлено: 15:10, 28-04-2024 | #5


Старожил


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

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


Цитата megaloman:
В зависимости от »

может быть просто посчитать ?

будет даже короче

Отправлено: 16:06, 28-04-2024 | #6


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


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

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


megaloman, По первым тестам все хорошо, благодарю!

Отправлено: 16:53, 28-04-2024 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Сообщение проводника при попытке удалить папку: невозможно удалить, папка не пуста Autumn Microsoft Windows 7 9 03-12-2021 16:25
CMD/BAT - [решено] Как определить пуста ли папка? dorosa Скриптовые языки администрирования Windows 7 14-02-2012 03:23
Ошибка - [решено] Не удается удалить [название папки]. Папка не пуста. AreD Microsoft Windows 2000/XP 32 01-05-2011 18:26
Доступ - [решено] Удаление папки - ошибка "Папка не пуста" fergard Microsoft Windows Vista 11 02-03-2008 15:24
Папка сетевые подключения пуста kumian Microsoft Windows NT/2000/2003 10 07-12-2006 12:25




 
Переход