InfoPathのテンプレート(XSNファイル)をSharePoint2010からSharePoint2013に移行しようとしている。
残念なことにXSNファイル内にサーバーURLがハードコードされているので、そのままでは持って行けない。
テキストに変換して一括で修正できないか?
最近のパターンからするとZIP展開するとテキスト(xml)ファイルが出てくるパターンかと思ったのだがそうでもなさそう。
調べてみるとどうやらZIP形式ではなく、CABなんだそうな・・・。
PowerShellでのCABファイル操作を調べてみると以下にサンプルがあったので使わせてもらう。
Windows PowerShell で .CAB ファイルを作成する
展開処理を最小限に抜き出すとこんな感じ。
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 | Function ConvertFrom-Cab() { Param( $cab , $destination ) $comObject = "Shell.Application" $shell = New-Object -Comobject $comObject if(!$?) { $(Throw "unable to create $comObject object")} $sourceCab = $shell.Namespace($cab).items() $DestinationFolder = $shell.Namespace($destination) $DestinationFolder.CopyHere($sourceCab) } ConvertFrom-Cab -cab "F:\Test.cab" -destination "F:\Desktop\wk" |
ファイルの拡張子はXSNのままではうまくいかなかったのでCABにリネームした。
最初は気づかなかったが、ミニマムにしたソースを見てみるとZIPの解凍に似ている。
っていうか、もしかして同じ?
以前作ったZIP解凍のソースを見てみたら、同じですねぇ。
だから拡張子をCABにしないとダメなのね・・・。
0 件のコメント:
コメントを投稿