我正在使用 Windows-10。
我刚刚做了很多工作以获取已编译文件详细信息中的 ShortSha 信息。现在我想将该信息复制到剪贴板,但这似乎不起作用,正如您从这个屏幕截图中看到的那样:
如您所见,我可以选择信息,但无法将其复制到剪贴板,而我想复制 ShortSha 以便在我的 Git-Extensions 版本控制系统中找到该信息。
就我的 Windows 版本而言,这是winver
命令的结果:
供您参考:我确信使用过可以复制该信息的 Windows 版本(即Windows Server版本)。
编辑:
因为我确定我已经在另一个 Windows 环境中完成了这项工作,所以我想知道该功能的确切名称以及这种 Windows 环境的示例。像这样,我可能会开始寻找补丁。
Edit2:关于PowerShell的评论
在Powershell中,我已经启动了以下命令,这是非常有前途的:
Get-Item "C:\Directory\Application.dll").VersionInfo.ProductVersion
如果我继续使用此解决方案,我需要知道:
- 如何将该结果用作复制到剪贴板的输入(
Set-Clipboard -Value Get-Item "C:\Directory\Application.dll").VersionInfo.ProductVersion
不起作用) - 如何将其集成到 Windows 上下文菜单中(右键单击并在该文件上启动命令)
Edit3:关于 Windows Server
的评论
我发现我正在使用此功能在 Windows Server 上工作。此功能是否可能不适用于 Windows-10 版本?如果没有,是否有一些可用的补丁来完成这项工作?
您的 PowerShell 几乎是正确的,只是缺少一对括号:
要在上下文菜单中使用它,请创建一个
.ps1
包含以下内容的脚本文件。我的存储在C:\Temp\test.ps1
.现在将以下文本复制到一个
.reg
文件中,然后双击它以导入注册表。它将创建一个名为“获取 DLL 版本”的上下文菜单操作并使用上面的脚本(确保在下面的文本中设置正确的脚本路径,文件名内有双反斜杠):新的上下文菜单条目可以立即使用。
我不能提供太多,因为你的命令几乎是正确的,你只错过了一个左括号,但我可以告诉你如何进行批处理。
以上获取您想要的信息,
Set-Clipboard
接受流水线参数,因此您可以将输出流水线到 cmdlet:您还可以使用别名来缩短命令:
gi
是 的别名Get-Item
。默认情况下,
Set-Clipboard
清除当前剪贴板,如果要保留当前剪贴板,请使用-Append
switch。我假设您想获取多个 dll 的版本,您可以使用
Get-ChildItem
列出目录中的所有 dll:别名:
要获取每个 dll 的版本:
Alias of
ForEach-Object
is%
获取字符串中的名称和版本:上面创建了一个字符串数组,如下所示:
将此数组加入到由换行符分隔的巨大字符串中:
最后,将整个内容粘贴到剪贴板中:
将所有这些包装成一个函数:
示例用法:
编辑
根据评论更新,
clip
不是 的别名Set-Clipboard
,因此我更正了别名命令以使其普遍适用。编辑 1
修复了代码中的几个拼写错误。我把它全部写在手机上,所以我没有机会运行它,第一个获取名称的命令中有错字,我将该命令复制粘贴到后续命令中,直到现在我才注意到.
您可以使用键盘上的打印屏幕按钮尝试截屏。或者干脆使用任何第三方软件,例如 Share X。然后使用 OCR 转换为文本。
如果要通过 PowerShell 和文件的上下文菜单执行此操作,请执行以下操作:
打开
regedit
并导航到以下键:HKEY_CLASSES_ROOT\*\shell
如果您是管理员HKEY_CURRENT_USER\Software\Classes\*\shell
如果你是普通用户在下面添加一个新键
shell
并将其命名为您希望上下文菜单条目的外观(例如CopyProductVersion
)command
在您刚刚创建的密钥下添加一个名为的新密钥编辑
(Default)
属性command
并输入,然后单击确定:现在您应该有一个新的上下文菜单条目,它将 ProductVersion 复制到剪贴板中。
您可以使用 PowerShell 获取文件详细信息;它也适用于 Windows 10:
例如,要获取 的文件信息
Autoruns64.exe
,请运行:关于上下文菜单添加,用户SimonS似乎已经解决了这部分问题。