批处理文件根据名称的最后一个字符移动文件
Batch File move files base on last characters of their name
bat文件是否可以搜索文件夹和文件
如果它找到命名为文件夹名称一部分的文件,则将该文件移动到该文件夹中。
例如:
D:\
└───Test
│ 161136.pdf
│ 23752.pdf
│ 24334.pd
│
├───017-161136
├───021-23752
├───120-24334
└───1560-4334
文件名为 4 到 6 个字符,文件夹包含文件名。
预期结果
D:\
└───Test
├───017-161136
│ 161136.pdf
│
├───021-23752
│ 23752.pdf
│
├───120-24334
│ 24334.pdf
│
└───1560-4334
我看不出使用 PowerShell 有什么不同
## Q:\Test19\SO_56599031.ps1
PushD D:\Test
Get-ChildItem *-* -Directory | ForEach-Object {
Move-Item ("{1}*" -f ($_.Name.split('-')[1])) -Dest $_.Name -WhatIf
}
PopD
或批量解决任务
:: Q:\Test19\SO_56599031.cmd
@Echo off
Pushd D:\Test
for /F "tokens=1* delims=-" %%A in ('Dir /B /AD *-*') do (
move "%%~B*" "%%A-%%B"
)
PopD
bat文件是否可以搜索文件夹和文件
如果它找到命名为文件夹名称一部分的文件,则将该文件移动到该文件夹中。
例如:
D:\
└───Test
│ 161136.pdf
│ 23752.pdf
│ 24334.pd
│
├───017-161136
├───021-23752
├───120-24334
└───1560-4334
文件名为 4 到 6 个字符,文件夹包含文件名。
预期结果
D:\
└───Test
├───017-161136
│ 161136.pdf
│
├───021-23752
│ 23752.pdf
│
├───120-24334
│ 24334.pdf
│
└───1560-4334
我看不出使用 PowerShell 有什么不同
## Q:\Test19\SO_56599031.ps1
PushD D:\Test
Get-ChildItem *-* -Directory | ForEach-Object {
Move-Item ("{1}*" -f ($_.Name.split('-')[1])) -Dest $_.Name -WhatIf
}
PopD
或批量解决任务
:: Q:\Test19\SO_56599031.cmd
@Echo off
Pushd D:\Test
for /F "tokens=1* delims=-" %%A in ('Dir /B /AD *-*') do (
move "%%~B*" "%%A-%%B"
)
PopD