VBscript を使って、Base64 のデコードをする必要があり、
objWSH.Run "cmd /c CertUtil -Decode A.txt B.jpg"
みたいなスクリプト書いたところ、
何度やっても失敗する。
デコードできないどころか、
このVBSファイル自体が消えてしまう。(自分自身が削除されるってあり得る?)
最初は、前後のファイル名の渡し方が間違ってて、
特にロングファイルネームなので、ダブルコーテーションの数とかが間違ってるのかと思って、さんざん試行錯誤を繰り返したけど、絶対失敗する。
Help を引いても、
-------------------------------------------------------------------------------
使用法:
CertUtil [オプション] -decode 入力ファイル 出力ファイル
Base 64 エンコード ファイルをデコードします
オプション:
-f -- 強制的に上書きします
-Unicode -- リダイレクトされた出力を Unicode として書き込む
-gmt -- 時刻を GMT で表示します
-seconds -- 時間を秒とミリ秒で表示します
-v -- メッセージを詳細に表示します
-privatekey -- パスワードと秘密キーのデータを表示します
-pin PIN -- スマート カードの PIN
-sid WELL_KNOWN_SID_TYPE -- 数値 SID
22 -- ローカル システム
23 -- ローカル サービス
24 -- ネットワーク サービス
CertUtil -? -- 動詞の一覧 (コマンドの一覧) を表示します
CertUtil -decode -? -- "decode" 動詞のヘルプ テキストを表示します
CertUtil -v -? -- すべての動詞のヘルプ テキストをすべて表示します
-------------------------------------------------------------------------------
間違っていない。
試しに、以下のようなバッチファイルを実行したら、ちゃんとデコードされた。
CertUtil -Decode A.txt B.jpg
VBscript で実行したときだけ失敗し、ファイルが消失する。
余計にわからなくなって、半日が経過。
なんとなく、
objWSH.Run "cmd /c CertUtil -Decode A.txt B.jpg"
このスイッチの
「-」を
「/」に置き換えて、
objWSH.Run "cmd /c CertUtil /Decode A.txt B.jpg"
としたら、あっさり成功。
もちろん自分自身も消失せず。
俺の半日を返せ~。
0 件のコメント:
コメントを投稿