C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■97130 / )  Re[9]: PowerShellでファイルバージョン取得
□投稿者/ 魔界の仮面弁士 (3039回)-(2021/03/31(Wed) 23:46:02)
No97127 (けん さん) に返信
> ご教授いただき誠に有難うございます。
概要程度ですので、教授ではなく教示ですね。


> 今実施しようとしていることは、レジストリの取得はbatファイルで行い、
全部 PowerShell で済ませるわけにはいかないのでしょうか?
レジストリの値も ls で取得できますよ。
https://qiita.com/mima_ita/items/1e6c74c7fb641852edff

例:
 ls HKLM:SYSTEM\CurrentControlSet*\Control\Nls\Calendars\Japanese\Eras


> batファイルのファイル情報取得コードを以下に変更して情報を取得する。
> 「powershell -file "C:\Users・・・・\sample02.ps1")」
DLL 一つ一つを調べるなら、.bat を下記のように記述することもできます。

@ECHO OFF
SET DLL="C:\Program Files\Common Files\System\ado\msado15.dll"
PowerShell -Command "& { (gp '%DLL%').VersionInfo.FileVersion }"
PAUSE

まぁ、ファイルを一つ調べるごとに PowerShell.exe を呼び出すのも無駄なので、
ファイルの列挙も .ps1 側で行った方がスマートでしょうけれどね。


> ここからは単純に結果をテキストファイルとして出力すればと思っておりましたが上手く
> いきませんでした。
もちろん PowerShell 側で Out-File 等を使うこともできますが、
現状のコードは、結果を標準出力に吐きだしているだけなので、
それを bat ファイル側で直接拾うこともできます。

@ECHO OFF
PowerShell.exe "C:\Example\test.ps1" > "C:\Example\result.txt" 2>&1
PAUSE


> 引数も「PowerShell」に渡します。
> powershell -file "C:\Users・・・・\sample02.ps1" mypath TestNo
PowerShell で引数を受け取るには、このようにします。
https://microsoftou.com/ps-arguments/
返信 編集キー/


管理者用

- Child Tree -