Признание идентификатора поставщика в Win Batch не работает прямо на Vista
Хорошо. Я сделаю скучные вещи быстро... Моя специальность - устранение неполадок электронного оборудования, но я хорошо разбираюсь в Windows и Linux. Я разработал вкус для написания полезных файлов win win. Пожалуйста, не пытайтесь продвигать другие формы кода (C++ и т. Д.), Так как я не в состоянии писать что-либо за пределами batch, bash и случайного легкого vb-скрипта.
Итак, я запустил небольшой пакет, который использует DEVCON для получения идентификаторов экземпляров устройства и перекрестной ссылки на них в локальной базе данных для идентификации неизвестного устройства.
Происходит то, что вывод ">" в тексте портится, и, насколько я могу судить, из-за UAC в Vista и 7. Он работает, когда я запускаю скрипт как администратор, но не выводит в правильные области (так как он работает из папки sys32), и я не могу жестко закодировать букву USB-диска, потому что она будет варьироваться от ПК к ПК.
Сценарий находится на съемном носителе и ПОДДЕРЖИВАЕТСЯ записать на диск, на котором он находится. Когда он попадает в ">" и не запускается от имени администратора, он запускает его в новом командном окне и не выводит. Как я могу получить это локализовано?
Вот проблемная область:
[ПРИМЕЧАНИЕ: INI-файлы, которые ищет FOR, похожи на это:]
[venid.ini] devid = 8086 = Корпорация Intel
[devid.ini] devid=4229=WiFi Link 4965AG
:idlookup
set dd=Unknown
set /P VENID=Enter Vendor ID: %=%
echo %venid%>> searches.txt
for /f "tokens=1,2,3,4 delims==" %%a in (venid.ini) do (
if %%b==%venID% set VS=%%c
if %%b==%venID% set vd=%%b
)
REM echo Searching local machine...
REM devcon -m:\\%computername% find *ven_%venid%* > foundids.txt
REM foundids.txt
REM set /P DEVID=Enter Device ID: %=%
REM for /f "tokens=1,2,3,4 delims==" %%a in (devid.ini) do (
REM if %%b==%DEVID% set dd=%%c
REM )
REM echo VendorID: %VD%
echo Vendor: %VS%
REM echo Device ID: [%DEVID%]
REM echo Description: [%DD%]
pause
set VS=Unknown
goto :vidmenu
1 ответ
Вы можете попробовать использовать %~dp0
чтобы получить абсолютный путь к каталогу, содержащему пакетный файл, а затем основать расположение выходного файла относительно этого.