用于读取.jar中pom.properties文件的Windows批处理脚本
我正在寻找一种简单的方法来读取pom.properties文件的第2行,该文件位于编译的.jar的META-INF文件夹中。(见此处:)。我经常需要知道文件中的日期,每次打开罐子并深入研究它都是一件痛苦的事情。我想要一个Windows批处理脚本,我可以通过右键单击.jar来运行它(因此我还需要有关Windows注册表命令的帮助)。批处理命令的结果可以显示在cmd窗口中(一个很好的好处是将值复制到剪贴板) 简言之:我希望能够右键单击Windows资源管理器中的.jar文件>选择“Get Maven Generated Date”(或任何内容)>并将pom.properties文件的第二行打印到控制台(并复制到剪贴板) 我知道这不会太难,我只是不知道该找什么:)用于读取.jar中pom.properties文件的Windows批处理脚本,windows,maven,batch-file,jar,registry,Windows,Maven,Batch File,Jar,Registry,我正在寻找一种简单的方法来读取pom.properties文件的第2行,该文件位于编译的.jar的META-INF文件夹中。(见此处:)。我经常需要知道文件中的日期,每次打开罐子并深入研究它都是一件痛苦的事情。我想要一个Windows批处理脚本,我可以通过右键单击.jar来运行它(因此我还需要有关Windows注册表命令的帮助)。批处理命令的结果可以显示在cmd窗口中(一个很好的好处是将值复制到剪贴板) 简言之:我希望能够右键单击Windows资源管理器中的.jar文件>选择“Get Maven
提前感谢您的帮助。请注意,使用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
}
添加类型-As System.IO.Compression.FileSystem;
$sourceJar=;
$jarArchive=[IO.Compression.ZipFile]::OpenRead($sourceJar).Entries
尝试
{
foreach($jarArchive中的archiveEntry)
{
if($archiveEntry.Name-类似“*pom.properties”)
{
$tempFile=[System.IO.Path]::GetTempFileName()
尝试
{
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($archiveEntry,$tempFile,$true)
$mavenDate=获取内容$tempFile-前2个
写入主机$mavenDate
}
最后
{
删除项$tempFile
}
}
}
}
最后
{
$jarArchive.Dispose
}
堆栈溢出不是代码编写服务。我们可以帮助您解决所编写代码的问题,但不要等待我们为您开始并完成项目。我建议这将是你剧本的一个很好的主干。实际上,这是我打算链接的。前一篇还不错。我为我不恰当的帖子道歉,但谢谢你的链接。