使用Excel作为源搜索和列出文件夹


0

作为一名初级系统管理员,我在NAS设备上负责数据管理工作。

通过使用Excel工作簿作为源(此工作簿的特定列的单元格),我必须使用Windows文件管理器在我们的NAS位置搜索与Excel列的单元格具有完全相同名称的文件夹。

是一种搜索磁盘位置的方法,使用Excel单元格中的名称来匹配单元格列中具有这些名称的文件夹?

我附加了列和单元格中的图像,这样您就可以有更好的想法。

excel column


是的,这在powershell中相当容易。学习系统管理员的好工具。 Powershell可以枚举excel / csv文件,您可以编写一些逻辑来枚举驱动器上的文件和文件夹,看它是否与您的列表匹配。
Appleoddity

你能否就一些具体的功能/命令给我一些线索?谷歌直到现在还没有提供具体的东西,因为我希望powershell列出我的文件夹的路径,因为我不知道他们的确切路径。我更喜欢一种更直观的方式,因为我必须在找到它们之后将这些文件夹复制到另一个地方......
Nick87

你可能需要看一下 Get-ChildItem 有可能 Where-Object。人们可以给你一棵“树”(不要与cmd混淆 tree )并且应该能够为您过滤它。如果它无法充分过滤,请查看 Where-Object。有点像 gci -Recurse | where Name -like '*1999*' 可能是结果。
Seth

这不是一个单一的命令。这是一系列概念。如何阅读excel文件;如何递归遍历目录树;如何检查字符串是否包含数组中的子字符串;如何复制文件夹。您还可以检查代理搜索或文件定位器专业版。他们可以进行布尔逻辑搜索。
Appleoddity

非常感谢您的宝贵信息!是的,我也考虑过Get-Childitem功能,因为我在另一个工作中使用它,我正在寻找NAS上大于300mb的文件。所以我想这次我应该用它来匹配excel中的名字。但我也在想,如果MS excel上有一个函数或VBA,它可以直接与windows的文件管理器链接,并从列或选定数量的单元格中搜索
Nick87

Answers:


0

正如其他人所说,Powershell中的一些脚本将会实现这一点。如果没有这个项目,那么下一个。我认为 import-csv 成为管理员学习脚本的最强参数。这是一个可以帮助您入门的示例

# csvtest.ps1
# assume this file name
$fname = "c:\data\naslist.csv"
$fcontent = import-csv $fname
# assume these column names in the csv: name and size
foreach ($row in $fcontent) {

    write-host $row.name $row.size 
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.