for /r %%i in (*.exe) do start "" /b "%%i"
Как отредактировать это, чтобы проверить, работает ли exe до его запуска?как отредактировать этот командный файл, чтобы проверить, работает ли exe
for /r %%i in (*.exe) do start "" /b "%%i"
Как отредактировать это, чтобы проверить, работает ли exe до его запуска?как отредактировать этот командный файл, чтобы проверить, работает ли exe
for /r %%i in (*.exe) do tasklist|findstr /i /b /L /c:"%%~nxi" >nul&if errorlevel 1 start "" /b "%%i"
Это выполняет tasklist
, посылая результат findstr
который выглядит для линии, которая начинается /b
/L
буквально /C:
строка «%% я» /i
независимо от регистра (утилизировать любой выход). Если findstr
не находит соответствующую строку, установите errorlevel
в 1. Оператор if
обнаруживает, что errorlevel
равен 1 или больше, поэтому, если его не найти, запустите его.
Вы также можете сократить его, используя условное выполнение. 'for/R %% i in (* .exe) do tasklist | findstr/i/b/L/c:" %% i "> nul || start" "/ b" %% i "' – Squashman
Не делает потому что %% i - это путь к exe, а не к имени .exe, поэтому он вернет false, потому что tasklist | findstr возвращает только имя exe, а не путь –
OK - исправлено (добавьте '~ nx' перед' i' в строка 'findstr', чтобы выбрать только имя и расширение. – Magoo