我知道我可以使用diskpart /s
为diskpart 编写脚本
select vdisk file=FILE_SUPPLIED_BY_COMMAND_LIME_PARAMETER
attach vdisk readonly
compact vdisk
detach vdisk
exit
然后用运行
diskpart /s scriptname.txt /t 15
但是我可以将命令石灰参数添加到diskpart吗例如,这样我就可以通过命令行指定VHDX文件了?
如果这不可能,使用Powershell包装器伪造命令行参数以动态生成diskpart脚本可能也是一种选择。
您可以通过管道连接到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'