2016-05-19 3 views
1

Я создал ISO, содержащий файл с именем AutoRun.exe. Я создал сценарий 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'.

ответ

0

Out-File создает выходной файл в формате Unicode, который ваш пакетный скрипт не может обработать. Изменение выходного кодировку Ascii:

... | Out-File 'letter.txt' -Encoding Ascii 

с этим сказал, почему вы используете два разных сценария, и на разных языках, на вершине этого? Вы можете запустить исполняемый файл из PowerShell, как это:

& "${DriveLetter}:\Autorun.exe" 

Если вам необходимо запустить сценарии отдельно друг от друга вы можете получить диск во второй PowerShell скрипт так:

$DriveLetter = Get-Content 'letter.txt' 
& "${DriveLetter}:\Autorun.exe" 
+0

Это должно сработать хорошо, и это так, но он ожидает, что файлы поддержки (ini, cfg) будут находиться там, где была выполнена Powershell (в данном случае мой рабочий стол). Любая работа вокруг? – Skulliam

+0

Какие «файлы поддержки» вы говорите? –

+0

«autorun.inf» и «AutoRunGUI.dll» – Skulliam

0

Ваш пакетный код верен. Новый файл letter.txt с буквой C в нем запустится C: \ AutoRun.exe

Вы попробовали? Если это работает, ваша проблема находится в вашем сценарии PowerShell.

Я не могу выполнить этот сценарий PowerShell, потому что моя система не распознает «Mount-DiskImage» и «GetVolume».

+0

Powershell работает просто хорошо; Я могу сравнить текстовый документ с фактической буквой Iso Drive, и они равны. Где-то что-то не так с запуском самого исполняемого файла ... – Skulliam

+0

Возможно, вам нужно установить путь выполнения? – kamp

Смежные вопросы