使用PowerShell浏览相机上的文件

Pie*_*ler 10 powershell

如果我通过USB连接数码相机,Windows资源管理器会将其作为设备列在计算机下.我可以使用资源管理器浏览它,查看文件夹,文件属性等,以及复制/删除文件.

这一切都没有将相机设置为存储设备(在这种情况下,我相信相机将显示为闪存驱动器,带有指定的驱动器号,使这很容易).

有没有办法让我使用Windows PowerShell访问和浏览相机上的文件和文件夹?据我所知,没有(自动)分配给设备的驱动器号.

我不是在寻找变通方法 - 我可以使用资源管理器复制文件,而不是问题.我问,因为我想玩PowerShell :-)

谢谢

更新:

我设法Win32PnPEntity使用以下内容获取相机的对象:

Get-WmiObject Win32_USBControllerDevice | ForEach-Object { $_; [Wmi]$_.Dependent }

接下来Get-WmiObject win32_pnpentity -filter "name='Canon PowerShot A480'"使用我从上一个命令获得的名称(PNPDeviceID可能是一个更好的选择,但名称更容易键入:P)

但是,我不知道我是否可以对该Win32PnPEntity对象做任何有用的事情.

Dav*_*ant 5

您可以结合以下两篇文章中的信息:https : //devblogs.microsoft.com/powershell/get-usb-using-wmi-association-classes-in-powershell/

这将允许您检索与特定 USB 设备关联的设备 ID(例如,从 Name 属性)。

然后使用 WMI 访问文件: 如何创建 PowerShell 脚本以将文件复制到 USB 闪存驱动器?


Car*_*eld 5

我刚刚创建了一个 PowerShell 脚本,该脚本能够抓取我的 USB 连接的 Android 设备,该脚本源自以下网站:

http://blogs.technet.com/b/heyscriptingguy/archive/2013/04/26/use-powershell-to-work-with-windows-explorer.aspx

我正在使用以下 API:

  1. Shell.Application COM 对象的实例化:

$o = 新对象 -com Shell.Application

  1. 获取特定的命名空间,即根文件夹列表:

$folder = $o.NameSpace(0x11)

0x11 指枚举常量 ShellSpecialFolderConstants.ssfDRIVES;请参阅https://msdn.microsoft.com/en-us/library/windows/desktop/bb774096(v=vs.85).aspx

  1. 递归遍历这个$文件夹:

$folder.GetFolder() 和 $folder.Items

查看我完整的工作要点: https://gist.github.com/cveld/8fa339306f8504095815


Arc*_*ass -1

我首先运行 get-PSDrive 并查看相机是否出现。

如果是这样,您应该能够将其视为普通驱动器并使用 copy-item cmdlet 来移动项目:

参考: http: //technet.microsoft.com/en-us/library/dd347638.aspx

问候阿卡斯

  • 在我看来,这并不那么容易.. :) 我前段时间尝试通过 USB 连接佳能下载图片,但仍然没有有效的解决方案.. :| (2认同)