我有各种带有 AutoRun.inf 文件的 CD。众所周知,出于安全风险,AutoRun.inf 在 Windows 7 上已被禁用。我想知道是否可以创建和运行一个批处理文件,该文件将在 open= 之后提取 .inf 中的文本,然后运行应用程序,无论它的名称是什么。例如,如果我们有以下 .inf 文件文件:
[autorun]
open=Program1.exe
是否可以编写一个批处理来提取文本 Program1.exe,然后通过运行 D:\Program1.exe 从批处理中执行程序(假设 D:\ 是 CD:驱动器)
请注意 Program1.exe 将是一个变量并且不断变化,唯一不变的是 CD 所在的驱动器盘符,在示例中为 D:\。
请让我知道是否需要任何澄清,如果可能,或任何其他建议来解决我目前的情况。感谢您的任何帮助!:)
< 编辑 >
感谢您的回复。我尝试了您的代码并将驱动器更改为 F:\ 用于 Cd 驱动器,请参见下文。我无法让它运行程序,并注意到驱动器号以外的另一个差异。在某些 .inf 文件中,在 open= 文件之后还有其他行,示例如下:
[autorun]
open=Program1.exe
additional text 1
additional text 2
您提供的代码是否需要修改以阻止代码在结尾行提取信息?
这是从 D:\ 到 F:\ 驱动器的编辑,我得到了一切吗?
@echo on
setlocal ENABLEDELAYEDEXPANSION
set _drive=F:
cd /f !_drive!\
for /f "tokens=1,2* delims==" %%i in ('type autorun.inf') do (
if "%%i"=="open" set _cmd=%%j
)
if not defined _cmd (
echo Unable to parse autorun.inf and find 'open='
) else (
!_drive!\!_cmd!
)
endlocal