首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoRun.inf的批处理文件

AutoRun.inf的批处理文件
EN

Stack Overflow用户
提问于 2013-12-04 05:36:54
回答 1查看 14.2K关注 0票数 0

我有各种各样的CD,上面有AutoRun.inf文件。众所周知,由于安全风险,AutoRun.inf在Windows7上已被禁用。我想知道是否可以创建并运行一个批处理文件,在open=之后提取.inf中的文本,然后运行应用程序,不管它的名称是什么。例如,如果我们有以下.inf文件:

代码语言:javascript
复制
[autorun]
open=Program1.exe

请注意,Program1.exe将是一个不断变化的变量,唯一的常量是CD所在的驱动器号,在本例中为D:\。

请让我知道是否需要任何澄清,如果这是可能的,或任何其他建议,以解决我提出的情况。感谢大家的帮助!:)

<编辑>

感谢您的回复。我尝试了您的代码,并将驱动器更改为F:\。对于Cd驱动器,请参见下面的内容。我无法让它运行程序,并且注意到除了驱动器号之外还有一个额外的差异。在某些.inf文件中,open=文件后面还有其他行,示例如下:

代码语言:javascript
复制
[autorun]
open=Program1.exe
additional text 1
additional text 2

是否需要修改您提供的代码,以阻止代码在结束行中提取信息?

这是从D:\到F:\驱动器的编辑,我得到所有东西了吗?

代码语言:javascript
复制
@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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 06:36:58

像这样的东西应该可以帮你解决这个问题。尽管如此,我添加了很少的错误检查。

代码语言:javascript
复制
@echo off
setlocal ENABLEDELAYEDEXPANSION

set _drive=F:
set _cmd=

cd /d !_drive!\
for /f "tokens=1,2* delims==" %%i in (autorun.inf) do (
  if "%%i"=="open" set _cmd=%%j
  if "%%i"=="Open" set _cmd=%%j
  if "%%i"=="OPEN" set _cmd=%%j
)
if not defined _cmd (
  echo Unable to parse autorun.inf and find 'open='
) else (
  !_drive!\!_cmd!
)

endlocal
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20362199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档