Признание идентификатора поставщика в 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 чтобы получить абсолютный путь к каталогу, содержащему пакетный файл, а затем основать расположение выходного файла относительно этого.

Другие вопросы по тегам