MDT サーバーのバックエンドでスクリプトをバッチ処理しようとしているツールがいくつかあります。それらのツールの 1 つが DISM/ImageX です。自動化しようとしているのは、DISM が個々の WIM ファイルを抽出できるようにフォルダーをチェックするスクリプトです。その後、別のユーティリティを使用して更新をスリップストリームできます。
WSUS ではありません。SCCMでもありません。それらを使用して実行できることは認識していますが、特定の OS の最新バージョンについて、展開時間をそれぞれ 15 ~ 20 分近くに保つようにしています。
多くのバックエンド ツールが正常に動作していますが、同じコードを何度も繰り返すのではなく、for ループを使用してディレクトリをチェックするように、バッチ ファイルのこの部分を圧縮するのに問題があります。
私は実際にバッチ スクリプトを作成したことはありませんが、考えられるほぼすべてのトリックを実行できるようで、コードを最適化する方法を常に探しています。
おそらく、誰かが私のバッチ ファイルでここで何をしようとしているのかを見ることができるかもしれません。何が間違っているのか教えてください。
長い道のりを書きましたが、このコードを =< 1 for loop で要約したいと思います。
setlocal
set EnabledDelayedExpansion
set _d=\\cp
set 3d_=G:\DISM
set 3d7a=%3d_%\7
set 3d7b=%3d_%\7\7.1
set 3d7c=%3d_%\7\7.2
set 3d7d=%3d_%\7\7.3
set 3d7e=%3d_%\7\7.4
set 3d8a=%3d_%\8
set 3d8b=%3d_%\8\8.1
set 3d8c=%3d_%\8\8.2
set 3d8d=%3d_%\8\8.3
set 3d8e=%3d_%\8\8.4
set 3dxa=%3d_%\10
set 3dxb=%3d_%\10\10.1
set 3dxc=%3d_%\10\10.2
set 3dxd=%3d_%\10\10.3
set 3dxe=%3d_%\10\10.4
goto :3d7f
:3d7f
for /f "tokens=5 delims= " %%a in ('%3d7a% %3d7b% %3d7c% %3d7d% %3d7e%') do
(
if not exist %%a (
mkdir %%a)
goto :3d8f
:3d8f
for /f "tokens=5 delims= " %%a in ('%3d8a% %3d8b% %3d8c% %3d8d% %3d8e%') do
(
if not exist %%a (
mkdir %%a)
goto :3dxf
:3dxf
for /f "tokens=5 delims= " %%a in ('%3dxa% %3dxb% %3dxc% %3dxd% %3dxe%') do
(
if not exist %%a (
mkdir %%a)
goto :exit
)
ディレクトリが存在するかどうかを確認する反復 for ループを使用して、変数の設定にリストされているディレクトリを作成しようとします。存在しない場合は作成します。
各変数ステップアップは、最終的に他の MDT サーバーに配布するために使用している別のグローバル バッチ ファイル内の適切なターゲット ディレクトリをローカライズします。これは、現在取り組んでいるセクションです。
- Squashman @ 5:34EST 1/1/19 によって指摘された間違いを編集 (ありがとう)