我仍然普遍對PowerShell不熟悉,並且我正在嘗試創建一個程序,該程序將根據名稱獲取文件,並將它們移動到具有相似名稱但不完全相同相同。例如,假設我有3個文件,Apples.txt,Grapes.txt和Oranges.txt。我想將它們移動到相應的文件夾中,Apple Apples USA,GrapesNY,OrangesFL。 我可以使用循環和If-Then語句對其進行硬編碼。即如果Apples.txt存在移動到ApplesUSA。但我希望它是動態的,所以如果其他文件和文件夾稍後添加,我不必更新代碼。有沒有辦法編寫一個聲明,說如果FileA和FolderB名稱相似(都包含名稱中的蘋果),然後將fileA移動到FolderB等等。 任何幫助表示讚賞。謝謝!!!!基於類似文件和文件夾名稱的文件分類
0
A
回答
0
嘗試這樣的事情
$PathWithFile="C:\temp\Test"
$PathWithDir="C:\temp\Test"
Get-ChildItem $PathWithFile -file -Filter "*.txt" | %{
$CurrentFile=$_
$Dirfounded=Get-ChildItem $PathWithDir -Directory | where {$_ -match $CurrentFile.BaseName} | select FullName -First 1
if ($Dirfounded -ne $null)
{
move-Item $CurrentFile.FullName -Destination $Dirfounded.FullName -WhatIf
}
}
0
一個oneliner類似@ Esperento的
gci *.txt -af|%{$File=$_.FullName;gci "$($_.BaseName)*" -ad|%{Move $File -Dest $($_.FullName) -whatif}}
的詳細的版本:
PushD "X:\path\to\base\folder"
Get-ChildItem *.txt -File | ForEach-Object{
$File = $_.FullName
Get-ChildItem "$($_.BaseName)*" -Directory | ForEach-Object {
Move-Item $File -Destination $_.FullName -whatif
}
}
PopD
兩個版本都需要PowerShell的V3爲-File
和-Directory
參數(和他們的別名-af
/-ad
)這可以通過附加的|Where-Object{ $_.PSIsContainer}
各自| Where-Object{!$_.PSIsContainer}
相關問題
- 1. 基於文件名的文件夾名稱
- 2. 刪除基於名稱的文件夾
- 3. 刪除部分批量文件夾名稱(類似於查找和替換?)
- 4. 查找類似的文件名稱
- 5. 忽略基於項目文件夾名稱的文件
- 6. 基於名稱將文件移動到相應的文件夾
- 7. 根據文件和文件夾名稱移動文件夾中的文件名
- 8. 按文件名將文件分類到文件夾中R
- 9. 如何比較基於C#中名稱的類似文件的兩個文件夾?
- 10. 基本MVC路由:/文件夾名稱/文件夾名稱/控制器名稱
- 11. 分組文件夾中的類似文件
- 12. 分類的Exchange文件夾到傑出的文件夾和普通文件夾
- 13. 名稱特定的文件夾中的PhpStorm文件類型
- 14. 文件夾名稱文件夾裏面
- 15. 其文件夾和名稱
- 16. URL名稱和文件夾
- 17. 批處理文件根據部分文件名將文件移動到基於部分文件夾名稱的文件夾
- 18. Python讀取基於部分名稱和文件時間戳的文本文件
- 19. 基於文件名將文件移動到文件夾
- 20. 基於文件夾中已有的名稱創建名稱爲
- 21. 基於文件夾名稱檢索比日期還早的文件夾
- 22. 檢查文件夾中的部分文件夾名稱
- 23. 基於python中的文本文件中的名稱創建文件夾
- 24. 使用的Automator和AppleScript基於文件名的文件移動到文件夾
- 25. 基於文件夾
- 26. VBA中文件夾中文件名的分類列表?
- 27. 將文件分類到同名文件夾的Bash腳本
- 28. Applescript - 將文件移動到文件夾取決於文件夾的名稱
- 29. 使用powershell移動/製作基於文件名的文件夾/子文件夾
- 30. LightTable中基於文件名的文件類型
取代。在PowerShell中,'獲取幫助About_Comparison_Operators' – user4317867
如果可以清楚地描述的模式,例如「完整的文件名與文件夾名稱的開始匹配」,然後是,從簡單到詳盡的搜索每個重疊字符集。如果沒有比理解英文更簡單的模式來建立連接,那麼https://xkcd.com/1425/ – TessellatingHeckler
嗯,ID表示80%的文件在與將要移動到的文件夾匹配時死亡。這是容易的部分,它的另一對文件是問題,但模式是相同的。將Apples.txt移至文件夾ApplesUSA。猜猜主要的問題是我如何做一個可以在文件名開頭找到的比較? –