您可以通过管道传输到diskpart
. 检索文件内容时,我会读取文件并替换您的值:
$diskPath = c:\disk.vhd
(Get-Content scriptname.txt) -replace 'FILE_SUPPLIED_BY_COMMAND_LIME_PARAMETER',$diskPath | diskpart
您可以使用字符串并绕过读取文件:
$diskPath = 'c:\disk.vhd'
@"
select vdisk file=$diskPath
attach vdisk readonly
compact vdisk
detach vdisk
"@ | diskpart
如果要使用参数,则需要一个函数或脚本块。使用脚本块:
# scriptname.txt contents
@"
select vdisk file=$($args[0])
attach vdisk readonly
compact vdisk
detach vdisk
"@ | diskpart
# The string argument for Invoke(argument) is passed to args[0]
[Scriptblock]::Create((Get-Content scriptname.txt -Raw)).Invoke('file path')
使用函数:
function Run-Diskpart {
param($diskPath)
@"
select vdisk file=$diskPath
attach vdisk readonly
compact vdisk
detach vdisk
"@ | diskpart
}
Run-DiskPart 'c:\disk.vhd'