文本文件包含文件夹名称,一个在另一个下面,没有路径。我需要一个Powershell脚本在主文件夹(.ps1文件所在的文件夹(中搜索列表中具有这些文件夹名称的所有子文件夹。它们可以位于某个位置,有时有几个文件夹级别。
这些子文件夹及其所有内容将被移动到另一个目标文件夹。名为"的目标文件夹;输出";应在与源文件夹相同的文件夹级别中创建。
由于列表的子文件夹在源文件夹中只出现一次,因此将找到的所有文件夹移动到没有文件夹层次结构的新目标文件夹中是没有问题的。
我怎么能意识到这一点?
你的问题太宽泛,有点友好,所以我只想给你一些commandlet作为你项目的资源:
将文件行转换为Powershell列表
#Get File Content as a string
$File_Content_Raw=Get-Content -Path $File_Path
#Split the content based on new lines (`n)
$List=$File_Content -split "`n"
在这一点上,你有一个Powershell列表对象可以很容易地处理
获取文件夹的内容(类似于LS或DIR(
我特意加上"-目录";只显示文件夹和"-重复"也列出子文件夹。
$Folder_Content=Get-ChildItem -Path $Folder_Path -Directory -Recurse
检查文件夹是否存在,并在必要时创建它
If (Test-Path -Path $Folder_Path$Target_Folder_Name){
New-Item -Name $Target_Folder_Name -ItemType Directory -Path $Folder_Path
}else{
Write-Host "Folder $Target_Folder_Name already exists in this path."
}
EDIT我添加了一个代码片段,以防您想知道如何浏览列表:
foreach ($Item in $List){
Write-Host "In here do something with item $Item."
}
这将对列表中的每个项目执行For循环,根据列表位置用当前项目加载变量$item。