我正在使用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
正確,你得到它:) –