问题描述
||
好。我会快速处理无聊的事情...我的专长是电子硬件故障排除,但是我精通Windows和Linux。我已经对编写有用的win批处理文件产生了兴趣。请不要尝试追加销售其他形式的代码(C ++等),因为我无法在批处理,bash和偶然的vb脚本之外编写任何内容。
因此,我开始使用DEVCON提取一批设备实例ID,并将它们交叉引用到本地数据库,以进行未知的设备标识。
发生的结果是\“> \”文本输出混乱了,据我所知,是由于Vista和7中的UAC引起的。当我以管理员身份运行脚本时,它可以工作,但是不会输出到正确的区域(因为它可以在sys32文件夹中工作),而且我无法对USB跳转驱动器号进行硬编码,因为它会因PC的不同而不同。
该脚本位于可移动媒体上,并且应该写出到该脚本所在的跳转驱动器。当它到达\“> \”并且不以admin身份运行时,它将在新的命令窗口中运行它,并且不会输出。如何获得本地化?
这是麻烦的地方:
[注意:进行FOR搜索的ini文件是这样的:]
[venid.ini]
devid = 8086 =英特尔公司
[devid.ini]
devid = 4229 = WiFi链接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,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来获取包含批处理文件的目录的绝对路径,然后将您的输出文件位置基于该位置。