2017-08-30 5 views
2

Windowsでは、MZ/PE実行可能ファイルには、元のファイル名と呼ばれるattibuteがあり、それが作成されたとき。cmd/batchを使用してWindowsの実行可能ファイルの「Original Filename」の詳細フィールドを取得するには

ファイルの[プロパティ]ウィンドウの[詳細]タブ(ファイルを右クリックして[プロパティ]を選択して開く)からWindowsユーザーが読むことができます。

私はそれを明確にするために、私は通常MSPaint.exeファイルに対して、この分野について話して、」元のファイル名を議論し、他の多くの質問が見つかりました:私は、しかし

In memory of it's announced death, I hope the gesture will be appreciated :)

whouldアクセスしたい/この属性を読んで(および潜在的にそれを編集)バッチファイルまたはWindowsコマンドライン(ないPowerShellの、してください!)を使用して。

ありがとう!

+2

のみバッチファイルを使用してこれを行うための組み込みの方法はありません。情報はバージョンリソースの "StringFileInfo"セクションに格納され、フィールドの名前は "OriginalFilename"です。あなたが "コマンドラインバージョンのリソースエディタ"のためにgoogleするなら、適切なツールを見つけることができるはずです。 – zett42

+0

応答ありがとう、@ zett42! – NirIzr

答えて

2

Windowsは、組み込みのコマンドラインツールを持っていませんバージョンを読むPEファイルからのフォーメーション

Resource Hackerのようなリソースエディタを使用して情報をエクスポートできますが、エクスポートされたファイルを解析する必要があります。

WinVista +(およびデスクトップ検索がインストールされたWinXP)では、シェルプロパティシステム(ファイルプロパティダイアログで使用されるのと同じAPI)を使用して情報を読み取ることができます。

マイクロソフトの開発者はshellproperty.exeという無料のツールを作成しました。このツールを使用してSystem.OriginalFileNameプロパティを読み取ることができます。

Windows Script Hostでは、ShellFolderItem.ExtendedPropertyメソッドを使用すると、プロパティシステムにアクセスすることもできます。

そして最後に、WSHスクリプトがゼロ外部依存関係での作業polyglotを作成するために、バッチファイルにマージすることができます。

@if (1 == 0) @end /* 
@cscript.exe /E:jscript /nologo "%~f0" %* 
@goto :eof 
*/ 

var objShell = new ActiveXObject("shell.application"); 
var objFolder2, ssfSysDir = 0x25, propVal = ""; 
objFolder2 = objShell.NameSpace(ssfSysDir); 
if (objFolder2 != null) 
{ 
    var objFolderItem; 
    objFolderItem = objFolder2.ParseName("mspaint.exe"); 
    if (objFolderItem != null) 
    { 
     propVal = objFolderItem.ExtendedProperty("{0CEF7D53-FA64-11D1-A203-0000F81FEDEE},6"); 
     WScript.Echo(propVal); 
    } 
} 
+0

答えをありがとう!マージされたWSHとバッチスクリプトの仕組みを少し詳しく説明できますか?どのようにマージがうまくいくか、それらのスクリプトを実行する方法など... – NirIzr

+1

バッチファイルとしての最初の4行は、独自のファイル名でcscript.exeを実行し、終了します。 WSHファイルとしての最初の4行は、ブランチの場合は「何もしない」、コメントはバッチコードをスキップします。 .cmdファイルとして保存し、通常のバッチファイルとして実行するだけです。 – Anders

+0

クール。ありがとう。私はちょっと座って質問をさせて、何もうまくいかなければそれを受け入れます。 – NirIzr

関連する問題