Показать полную графическую версию : [решено] Запуск программы если папка не пуста
diablo.att
27-04-2024, 13:29
Доброго дня!
Подскажите, возможен ли запуск программы если в папке есть файлы… В общем.
Например, проверить каталоги C:\test, D:\Test2. И если здесь есть файл, запустить .exe, если папка пуста — ничего не делать/выключить компьютер.
DJ Mogarych
27-04-2024, 18:36
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 {}
megaloman
27-04-2024, 19:49
@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
Закомментирован вариант продолжения работы скрипта после запуска первой программы без ожидания ее завершения
diablo.att
27-04-2024, 22:46
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-й программы
чтобы терминал закрывался, после открытия программы
megaloman
28-04-2024, 15:10
@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 можно написать запуск программ в любой комбинации наличия файлов
Serguei Kouzmine
28-04-2024, 16:06
В зависимости от »
может быть просто посчитать ?
будет даже короче
diablo.att
28-04-2024, 16:53
megaloman, По первым тестам все хорошо, благодарю!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.