loban_ser
- Стаж: 6 лет 10 месяцев
- Сообщений: 577
- Репутация:24[+] [-]
|
goga8686,@Echo OFF set n=\SANDISK for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do @dir %%I:%n% >nul 2>nul&&set DrvLett=%%I ( echo.[Config] echo.ext=.shl echo.BackFile=%%temp%%\PsMgr.bck echo.Idx=PsMgrCache.idx echo.[Path] echo.Drives=[Boot=%DrvLett%][Removable=%DrvLett%][Fixed=%DrvLett%]:\XMPE\Programs )>%DrvLett%:\XMPE\PsMgr.ini start "" /b %windir%\System32\au3381.exe %windir%\PsMgr.a3x Exit /B Разберетесь, что нужно свое подставить? Ну и можно ярлык вывести куда угодно
|
Отправлено: 28-Окт-2019 16:17
(спустя 1 час 58 минут)
wadimus
- Стаж: 8 лет
- Сообщений: 749
- Репутация:91[+] [-]
|
на любом диске создаю папку SANDISK в корне диска (на системном С) и что? как я понял, нужно имя диска, на котором был запущен наш батник (и на котором он находится)? таки так:for %%a in ("%~dp0") do set DrvLett=%%~da в переменной DrvLett будет имя диска с символом : (C: или D:) - там, где мы сохранили наш батник (не важно где, где-то там в глубине папок)
|
wadimus
- Стаж: 8 лет
- Сообщений: 749
- Репутация:91[+] [-]
|
loban_ser начало работы вашего батника: - есть некая папка как метка (set n=\Flesh) - папка или файл Flesh - эта папка находится в корне(!) диска (%%I:%n%) то есть в C:\Flesh или D:\Flesh .. - проверяем существование этой метки, пытаясь диркнуть все существующие пути по переменной - первая попавшаяся метка ловится и выполняется заполнение некоего файла нужной информацией - нету метки - нету действий нам важно что? - флешка с установленной меткой? - или диск, который присвоен флешке? батник находится где? на флешке? если да - зачем нам ажурная этажерка? я и пишу:for %%a in ("%~dp0") do set DrvLett=%%~da как заменаset n=\Flesh for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do @dir %%I:%n% >nul 2>nul&&set DrvLett=%%I в переменной DrvLett - буква диска, откуда был запущен наш батник! диск флешки же есть? батник находится на этой флешке?
|
loban_ser
- Стаж: 6 лет 10 месяцев
- Сообщений: 577
- Репутация:24[+] [-]
|
wadimus,бантик может находится в самом ядре PE, можно вывести ярлык допустим на рабочий стол, Flesh это маркерный файл находящийся в корне флешки с которой нужно запустить программы На скриншота выше видно, что присутствуют два диска с одинаковым набором программ, вообще все как и просил goga8686,
|
wadimus
- Стаж: 8 лет
- Сообщений: 749
- Репутация:91[+] [-]
|
loban_ser, во! батник в любом месте нашей флешки. давай я поясню свою строку: - запускаем батник, он определяет своё местонахождение %~dp0 - присваиваем это местонахождение (а оно типа такого: U:\--Sand\1\) переменной %%a - и из этой переменной выделяем только букву диска %~da (в моём случае это U:) в справке к команде For основные модификаторы: %~I - из переменной %I удаляются обрамляющие кавычки (") %~fI - переменная %I расширяется до полного имени файла %~dI - из переменной %I выделяется только имя диска %~pI - из переменной %I выделяется только путь к файлу %~nI - из переменной %I выделяется только имя файла %~xI - из переменной %I выделяется расширение имени файла %~sI - полученный путь содержит только короткие имена %~aI - переменная %I расширяется до атрибутов файла %~tI - переменная %I расширяется до даты /времени файла %~zI - переменная %I расширяется до размера файла
|
loban_ser
- Стаж: 6 лет 10 месяцев
- Сообщений: 577
- Репутация:24[+] [-]
|
wadimus, Я это все знаю, но к чему это? Я ведь объяснил, что бантик запуска может находится где угодно, не обязательно на той флешке на которой нужно запустить программы. Я думаю вам лучше узнать у goga8686 где ему лучше его разместить. Он попросил, я навоял по скоренькой, а откуда будет запускать сам разберётся, думаю речь шла о универсальности.
|
wadimus
- Стаж: 8 лет
- Сообщений: 749
- Репутация:91[+] [-]
|
loban_ser, боюсь я все эти перенаправления, особенно поток ошибок (2>nul)
|
loban_ser
- Стаж: 6 лет 10 месяцев
- Сообщений: 577
- Репутация:24[+] [-]
|
goga8686, Я бы дополнилfor %%I in (C D E F G H I J K L M N O P Q R S T U V W) do @dir %%I:%n% >nul 2>nul&&set DrvLett=%%I || echo Диск с софтом не найден&timeout /t 7 >nul&goto eof с телефона не очень удобно писать, так что мильпардон
|
loban_ser
- Стаж: 6 лет 10 месяцев
- Сообщений: 577
- Репутация:24[+] [-]
|
Да. благодарю!for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do dir %%I:%n% >nul 2>nul&&set DrvLett=%%I If Not DEFINED DrvLett echo Диск с софтом не найден!!!&timeout /t 7 /NOBREAK>nul&goto :eof 71116А диски X Y Z совсем некошерные? Известно почему, X Y в РЕ могут быть заняты, ну а добраться до Z...... просто не представляю сколько должно флешек присоеденено.
71118Нет у тебя явной метки eof. Есть неявная метка :eof исправил@Echo OFF set n=\Flesh for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do dir %%I:%n% >nul 2>nul&&set DrvLett=%%I If Not DEFINED DrvLett %windir%\System32\au3381.exe %~DP0end.a3x&goto :eof ( echo.[Config] echo.ext=.shl echo.BackFile=%%temp%%\PsMgr.bck echo.Idx=PsMgrCache.idx echo.[Path] echo.Drives=[Removable=%DrvLett%][Fixed=%DrvLett%]:\XMPE\Programs )>%DrvLett%:\XMPE\Programs\PsMgr.ini start "" /b %windir%\System32\au3381.exe "%DrvLett%:\XMPE\Programs\PsMgr.a3x" Exit /B [Shortcut] exe=Hidcon.exe lnk=Soft Xemom1 for Drive Label=Flesh Desktop=\ workdir=\ icon=\icon.ico args=PsMgr.bat desc=Подключение программ Soft Xemom1 SplashTextOn("Soft", "Диск с софтом не найден!!!", 300,50, 100, 100, 0, "", 12) Sleep(3000) SplashOff()
Последний раз редактировалось: loban_ser (2019-10-29 04:54), всего редактировалось 5 раз(а)
|
Ander_73
- Стаж: 7 лет 10 месяцев
- Сообщений: 3839
- Репутация:127[+] [-]
|
loban_ser, а ты упрямый! Нет у тебя явной метки eof. Есть неявная метка :eof
|
Текущее время: 13-Дек 11:51
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|