我创建了一个包含名为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误差状态
窗口找不到“:\AutoRun.exe”。
发布于 2016-05-19 15:00:39
Out-File以Unicode格式创建输出文件,您的批处理脚本无法处理该文件。将输出编码更改为Ascii
... | Out-File 'letter.txt' -Encoding Ascii话虽如此,为什么在上面使用两种不同的脚本和不同的语言呢?您可以像这样从PowerShell运行可执行文件:
& "${DriveLetter}:\Autorun.exe"如果需要彼此独立运行脚本,则可以在第二个PowerShell脚本中获得驱动器,如下所示:
$DriveLetter = Get-Content 'letter.txt'
& "${DriveLetter}:\Autorun.exe"发布于 2016-05-19 14:52:40
你的批处理代码是正确的。带有字母C的新letter.txt文件将启动C:\AutoRun.exe
你试过这个吗?如果它有效,您的问题就在PowerShell脚本中。
我无法执行这个PowerShell脚本,因为我的系统不识别“挂载-磁盘图像”和"GetVolume“。
https://stackoverflow.com/questions/37326687
复制相似问题