目标:我想将多个SD \ CF卡中的文件(JPG和\或CR2)自动复制到我的照片存储系统中。
问题:与Powershell相比,我对Bash感到更舒服,但WSL2尚不容易支持USB驱动器。
问题:如何检查是否插入了一个或多个SD \ CF卡,并检查是否存在某些文件夹?在这种情况下,为[drive]:\DCIM\100CANON
。我发现了this问题,但无法完全解决。理想情况下,我希望能够将输出存储在一个变量中,然后可以循环通过该变量(并运行所述复制例程)
Get-WMiObject -Class Win32_Volume | Select Name, DriveLetter, Caption, Label, DevideID, DriveType, Capacity
或
Get-CimInstance -ClassName Win32_Volume | Select Name, DriveLetter, Caption, Label, DevideID, DriveType, Capacity
或使用Win32_DiskDrive,Win32_DiskDrivePhysicalMedia,并使用Model属性值。
Partitions : 1
DeviceID : \\.\PHYSICALDRIVE6
Model : SDHC Card
Size : 3964584960
Caption : SDHC Card
...和Get-PSDrive ...
Get-PSDriive
或
Get-PSDrive -PSProvider FileSystem
# Results
<#
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
A A:\
C 202.06 23718.91 FileSystem C:\
D 1211.06 123642.32 FileSystem D:\
G 202.06 710.91 FileSystem \\Music\GratefulDead
#>
... cmdlet将列出所有连接的驱动器,如图所示。
过滤驱动器记录在这里:
Filtering get-psdrive to all Local Drives
DriveType是Win32_Volume结构的一个属性,该结构枚举 驱动器的类型。值3代表本地磁盘。下面是 值的完整列表。0-未知
1-无根目录
2-可移动磁盘
3-本地磁盘
4-网络驱动器
5-光盘
6-RAM磁盘
注意,没有专门用于SD或CF的属性/选项。
因此,在您的用例中,如果您的SD / CF具有与上述类似的根标签,则可以使用Root属性值或使用驱动器大小作为目标,因为在正常情况下,您的相机/手机等存储介质的总大小总会小于32GB。