[Quote]

    loban_ser
  • 17796
  • Longevity: 6 years 8 months
  • Posts: 577
  • REPUTATION: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
Разберетесь, что нужно свое подставить?
Ну и можно ярлык вывести куда угодно

[Quote]

    wadimus
  • 14910
  • Longevity: 7 years 10 months
  • Posts: 749
  • REPUTATION:91

    [+] [-]
на любом диске создаю папку SANDISK в корне диска (на системном С) и что?
как я понял, нужно имя диска, на котором был запущен наш батник (и на котором он находится)?
таки так:
for %%a in ("%~dp0") do set DrvLett=%%~da
в переменной DrvLett будет имя диска с символом : (C: или D:) - там, где мы сохранили наш батник (не важно где, где-то там в глубине папок)

[Quote]

    loban_ser
  • 17796
  • Longevity: 6 years 8 months
  • Posts: 577
  • REPUTATION:24

    [+] [-]
wadimus,
Вот именно так:
@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
(
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
Все работает как надо,
71091как я понял, нужно имя диска, на котором был запущен наш батник (и на котором он находится)?
батник может находится где угодно


[Quote]

    wadimus
  • 14910
  • Longevity: 7 years 10 months
  • Posts: 749
  • REPUTATION: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 - буква диска, откуда был запущен наш батник!
диск флешки же есть? батник находится на этой флешке?

[Quote]

    loban_ser
  • 17796
  • Longevity: 6 years 8 months
  • Posts: 577
  • REPUTATION:24

    [+] [-]
wadimus,бантик может находится в самом ядре PE, можно вывести ярлык допустим на рабочий стол,
Flesh это маркерный файл находящийся в корне флешки с которой нужно запустить программы
На скриншота выше видно, что присутствуют два диска с одинаковым набором программ, вообще все как и просил
goga8686,

[Quote]

    wadimus
  • 14910
  • Longevity: 7 years 10 months
  • Posts: 749
  • REPUTATION: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 расширяется до размера файла

[Quote]

    loban_ser
  • 17796
  • Longevity: 6 years 8 months
  • Posts: 577
  • REPUTATION:24

    [+] [-]
wadimus,
Я это все знаю, но к чему это?
Я ведь объяснил, что бантик запуска может находится где угодно, не обязательно на той флешке на которой нужно запустить программы.
Я думаю вам лучше узнать у goga8686 где ему лучше его разместить.
Он попросил, я навоял по скоренькой, а откуда будет запускать сам разберётся, думаю речь шла о универсальности.

[Quote]

    wadimus
  • 14910
  • Longevity: 7 years 10 months
  • Posts: 749
  • REPUTATION:91

    [+] [-]
loban_ser, боюсь я все эти перенаправления, особенно поток ошибок (2>nul) ah ag

[Quote]

    goga8686
  • 15240
  • Longevity: 7 years 9 months
  • Posts: 881
  • REPUTATION:73

    [+] [-]
loban_ser, aa Спасибо! всё работает.Сам батник мне не сложно запустить из корня флешки,главная "хотелка" чтобы не цеплялись программы с других флешек.

[Quote]

    loban_ser
  • 17796
  • Longevity: 6 years 8 months
  • Posts: 577
  • REPUTATION: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
с телефона не очень удобно писать, так что мильпардон

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 8 months
  • Posts: 3769
  • REPUTATION:127

    [+] [-]
loban_ser, только вот так:
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
)
---
А диски X Y Z совсем некошерные? ab

[Quote]

    loban_ser
  • 17796
  • Longevity: 6 years 8 months
  • Posts: 577
  • REPUTATION:24

    [+] [-]
71116только вот так:
Да. благодарю!
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()


Last edited by loban_ser on 2019-10-29 04:54; edited 5 times in total

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 8 months
  • Posts: 3769
  • REPUTATION:127

    [+] [-]
loban_ser, а ты упрямый! Нет у тебя явной метки eof. Есть неявная метка :eof
ab


Display posts:    

Current time is: 16-Oct 00:13

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum