文件路径中的驱动器字母变量

时间:2016-05-19 14:44:31

标签: powershell batch-file

我创建了一个包含名为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'。

2 个答案:

答案 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"