我正在使用PowerShell,并且我在这个问题上苦苦挣扎了两天。将包含字符串的文件移动到与原始文件夹名称相同的子文件夹(PowerShell)
在目录C:\ dir_1我有许多子文件夹(sub_1,sub_2,...,sub_n)。他们每个人都包含几个文本文件。对于每个子文件夹i = 1,2,...,n,我想将包含字符串“My-String”的文本文件移动到目录C:\ dir_2 \ sub_i。
例如,如果路径C:\ dir1 \ sub_5中的文件X包含字符串“我的字符串”,我想将其移动到位置C:\ dir_2 \ sub_5。目标文件夹已存在。
我尝试下面的代码的一些修改,但它不工作:
Get-ChildItem "C:\dir_1" | Where-Object {$_.PSIsContainer -eq $True} | Foreach-Object {Get-ChildItem "C:\dir_1\$_" | Select-String -pattern "My-String" | group path | select name | %{Move-Item $_.name "C:\dir_2\$_"}}
所以,基本上,我试图做的是:在DIR_1的foreach子文件夹中,服用含有该字符串的文件和将它们移动到dir_2中具有相同名称的子文件夹中。我尝试了几次对该代码的小修改,但我无法解决我的错误。主要的错误是“移动项目:给定的路径格式不支持”...任何帮助?
要尝试和意译:您正在查找包含某个字符串的dir_1 \ Sub_X中的文件。对于找到的所有文件,将它们移动到dir_2 \ SUB_X中?其中sub_X是同一个文件夹,它在dir_1里面......我想我明白了。 – Matt
正确,你得到它:) –