我在路径上有一个源目录D:\somepath
,其中包含混合内容,即文件和文件夹。
现在我想将除少数文件和文件夹之外的所有文件夹和文件从源路径移动到另一个目标路径D:\otherpath
。
但我不知道如何用一次for
循环来循环遍历源目录中的所有混合内容。
下面是我尝试过的代码,它只打印文件夹而不打印文件,但我也想要文件:
@ECHO OFF
FOR /f %%f in ('dir /ad /b "D:\somepath\"') DO ECHO %%f
PAUSE > NUL
答案1
如果 PowerShell 解决方案可行并且您拥有 PowerShell 3.0+,那么您可以使用以下命令:
$except = @(
"Thisfile.png",
"ThisFolder",
"ThisOtherFile.exe"
)
$source = "D:\somepath"
$destination = "D:\otherpath"
gci $source | % {
if (!( $_.Name -in $except)) {
Move-Item $_.FullName $destination -Force
if ($?) { Write-Host "$($_.Name) was moved." }
}
else {
Write-Host "$($_.Name) was not moved." -fore Red
}
}
只需添加你不想处理的文件名即可$except = @()