Windows Batch脚本,用于读取.jar中的pom.properties文件

时间:2016-02-08 00:51:46

标签: windows maven batch-file jar registry

我正在寻找一种简单的方法来读取放在已编译的.jar的META-INF文件夹中的pom.properties文件的第二行。 (见这里:http://maven.apache.org/guides/getting-started/index.html#How_do_I_add_resources_to_my_JAR)。我经常需要知道该文件中的日期,每次打开罐子并深入挖掘它都是一件痛苦的事。我想要一个Windows批处理脚本,我可以通过右键单击.jar来运行(因此我也需要Windows注册表命令的帮助)。批处理命令的结果可以只显示在cmd窗口中(一个很好的奖励也是复制到剪贴板的值)。

简而言之:我希望能够在Windows资源管理器中右键单击.jar文件>选择“获取Maven生成日期”#39; (或其他)>并将pom.properties文件的第二行打印到控制台(并复制到剪贴板)。

我知道这可能太难了,我只是不知道该找什么:)。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

请注意,使用System.IO.Compression.FileSystem类需要.NETv4.5。

Add-Type -As System.IO.Compression.FileSystem;

$sourceJar = <source-jar-here>;
$jarArchive = [IO.Compression.ZipFile]::OpenRead($sourceJar).Entries
try
{
    foreach($archiveEntry in $jarArchive)
    {
        if($archiveEntry.Name -like "*pom.properties")
        {
            $tempFile = [System.IO.Path]::GetTempFileName()
            try
            {
                [System.IO.Compression.ZipFileExtensions]::ExtractToFile($archiveEntry, $tempFile, $true)
                $mavenDate = Get-Content $tempFile -First 2
                Write-Host $mavenDate
            }
            finally
            {
                Remove-Item $tempFile
            }
        }
    }
}
finally
{
    $jarArchive.Dispose
}