合并安装文件源
用 DISM 安装包时,必须把包、程序集和清单文件放到一个目录下。
以前有个 APPEND 的命令可以把多个路径组合到一起,现在,没有了。
如果把这三部分合到一起,一是占地方,有有一万多个文件夹,六万多个文件,六吉多,二是耗时多,可能需要一两个小时。
那么,创建链接就是一个不错的方法,几乎不占多少空间,大约只有一百兆左右,几分钟就能创建完成。
创建目录,用符号链接,创建文件,用硬链接,在 PSC 模块中有包装好的命令:new-symlink 和 new-hardlink。
两个命令都很简单,第一个参数为链接的名字,第二个参数为源文件(目录)的全路径。
程序集是一组目录,用软链接,包和清单文件,用硬链接。
function New-AllFilesLink
{
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true)]
$Source,
$Type
)
switch ($Type)
{
"winsxs" {
$winsxs = Get-ChildItem "$Source\windows\winsxs" -Directory -Exclude "Manifests"
foreach ($sxs in $winsxs)
{
New-Symlink $sxs.Name $sxs.FullName
}
}
"package" {
$package = dir "$Source\windows\servicing\packages" -file
foreach ($pkg in $package)
{
New-Hardlink $pkg.Name $pkg.FullName
}
}
"manifest" {
$Manifest = Get-ChildItem "$Source\windows\winsxs\Manifests" -file
foreach ($Manif in $Manifest)
{
New-Hardlink $Manif.Name $Manif.FullName
}
}
default
{
#<code>
}
}
}