我创建了一个包含名为AutoRun.exe
的文件的ISO。我已经创建了一个PowerShell脚本来安装并将已装入的驱动器号保存到letter.txt
。
$Mounted= Mount-DiskImage -PassThru "C:\Users\Skulliam\Documents\DiskImage.iso"
$DriveLetter = ($Mounted | Get-Volume).DriveLetter
$DriveLetter | Out-File letter.txt
然后我尝试访问letter.txt
的驱动器号。例如,如果它将ISO安装到驱动器F,则批处理将运行F:\Autorun.exe
。
for /f "Delims=" %%a in (letter.txt) do (
set DRIVE=%%a
)
START %DRIVE%:\AutoRun.exe
pause
错误状态
Windows无法找到':\ AutoRun.exe'。
答案 0 :(得分:0)
您的批次代码是正确的。带有字母C的新letter.txt文件将启动C:\ AutoRun.exe
你尝试过这个吗?如果可行,您的问题就在PowerShell脚本中。我无法执行此PowerShell脚本,因为我的系统无法识别" Mount-DiskImage"和" GetVolume"。
答案 1 :(得分:0)
html =
(
<body>
<ul class="article-additional-info">
<li><strong>Issue Year:</strong> 2011</li>
<li><strong>Issue No:</strong> 1 (200)</li>
<li><strong>Page Range:</strong> 65-80</li>
<li><strong>Page Count:</strong> 15</li>
<li><strong>Language:</strong> Polish</li>
</ul>
</body>
)
document := ComObjCreate("HTMLfile")
document.write(html)
test := ["Issue Year:", "Issue No:", "Page Range:", "Page Count:"]
try While (x := document.getElementsByTagName("ul")[A_Index-1])
{
if (x.className = "article-additional-info")
{
count++
yclass%count% := x.innerHTML
}
}
loop, %count%
{
html := yclass%A_Index%
document.Close
document := ComObjCreate("HTMLfile")
document.write(html)
try While (x := document.getElementsByTagName("strong")[A_Index-1])
{
StringLen, y, % test[A_Index]
msgbox % [A_Index] . " " . substr(x.parentnode.innerText, y+2)
}
}
ExitApp
以Unicode格式创建输出文件,批处理脚本无法处理。将输出编码更改为Out-File
:
Ascii
说到这一点,你为什么要使用两种不同的脚本,而不同的语言呢?您可以像这样从PowerShell运行可执行文件:
... | Out-File 'letter.txt' -Encoding Ascii
如果您需要彼此分开运行脚本,您可以在第二个PowerShell脚本中获取驱动器,如下所示:
& "${DriveLetter}:\Autorun.exe"