Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Bat файл для запуска файла

Глеб Олегович Анищенко Анищенко Знаток (268), закрыт 3 месяца назад
Я хочу сделать bat файл, который бы запускал дискорд. и для этого я написал код start "" "C:\Users\User\AppData\Local\Discord\app-1.0.9177\Discord.exe". Но вот дискорд иногда выпускает обновления и название папки "app-1.0.9177" меняется. Я пробовал использовать * и ? ( типо так: app-* и другие вариации), но выдает ошибку, что не удается найти файл.
Лучший ответ
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (273734) 3 месяца назад
По времени создания файла или папки.

 dir "%base_dir%" /AD /B /O-D: 

/AD — отображает только каталоги.
/B — выводит имена каталогов без указания даты и времени.
/O-D — сортирует вывод в убывающем порядке по дате и времени создания.
Глеб Олегович Анищенко АнищенкоЗнаток (268) 3 месяца назад
По итогу сделал такой код:
for /f "tokens=*" %%i in ('dir /b /od /t:c "C:\Users\User\AppData\Local\Discord"') do set Newest=%%i
echo %Newest%
start "" "C:\Users\User\AppData\Local\Discord\%Newest%\Discord.exe"
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (273734) Глеб Олегович Анищенко Анищенко, Фильтруй только папки, остальной мусор не нужен
 @echo off 
setlocal enabledelayedexpansion 
 
rem Путь к папке Discord 
set "discordDir=C:\Users\User\AppData\Local\Discord" 
 
rem Получение последней папки по дате создания 
for /f "delims=" %%i in ('dir /b /ad /od "%discordDir%"') do set "Newest=%%i" 
 
rem Проверка, найдена ли папка 
if defined Newest ( 
    echo Запуск последней версии Discord: %Newest% 
    start "" "%discordDir%\%Newest%\Discord.exe" 
) else ( 
    echo Папка Discord не найдена в %discordDir%. 
) 
 
endlocal 
 
V̲i̲s̲t̲a̲s̲t̲e̲r̲Искусственный Интеллект (273734) 3 месяца назад
@echo off
setlocal enabledelayedexpansion

rem Путь к папке Discord
set "discordDir=C:\Users\User\AppData\Local\Discord"

rem Получение последней папки по дате создания
for /f "delims=" %%i in ('dir /b /ad /od "%discordDir%"') do set "Newest=%%i"

rem Проверка, найдена ли папка
if defined Newest (
echo Запуск последней версии Discord: %Newest%
start "" "%discordDir%\%Newest%\Discord.exe"
) else (
echo Папка Discord не найдена в %discordDir%.
)

endlocal
Глеб Олегович Анищенко Анищенко Знаток (268) V̲i̲s̲t̲a̲s̲t̲e̲r̲, Спасибо
Остальные ответы
Александр Волков Мудрец (12957) 3 месяца назад
Для решения проблемы с изменяющимся именем папки в пути к Discord, можно использовать цикл в bat-файле, чтобы автоматически находить последнюю версию папки. Вот пример bat-файла:
 @echo off 
setlocal

:: Путь к папке, где находится Discord
set "discordPath=C:\Users\User\AppData\Local\Discord"

:: Поиск последней версии папки
for /f "delims=" %%d in ('dir /b /ad /o-n "%discordPath%\app-*" 2^>nul') do (
set "latestFolder=%%d"
goto :found
)

:: Если папка не найдена
echo Папка с Discord не найдена!
pause
exit /b

:found
:: Запуск Discord
start "" "%discordPath%\%latestFolder%\Discord.exe"
Похожие вопросы