我需要帮助来构建一个脚本,以遍历当前目录根目录中的每个文件,将其filename.ext与要排除的掩码黑名单(*。!qb,*。parts等)进行比较。使用语法filename\filename.ext
我的旧批处理代码尚不支持Powershell,但可以提供一些清晰的信息。
for %%s in (*.*) do if not "%%~xs"==".!qB" if not "%%~xs"==".parts" (
md "%%~ns" & move "%%s" "%%~ns\")
请帮助我了解替换这些命令所需的命令。
答案 0 :(得分:1)
注释中的命令略有更改。
gci * -file | ? Extension -notin '.!qb','.parts' | % {md $_.BaseName ;move $_.FullName -Destination ("{0}\" -f $_.BaseName) -force}
更多详细的变体:
Get-ChildItem * -File |
Where-Object Extension -notin '.!qb','.parts' | ForEach-Object {
New-Item $_.BaseName -ItemType Directory | Out-Null
Move-Item -LiteralPath $_.FullName -Destination ("{0}\" -f $_.BaseName) -force
}
运行脚本后的示例树:
> tree /f
A:.
│ filename.!qb
│ filename.parts
│
└───filename
filename.mkv