You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell移动文件夹时排除指定目录报错问题咨询

问题分析与解决

你的脚本崩溃且试图移动ARKIV目录本身,核心问题是**-Exclude参数的用法错误**:

  • -Exclude参数接收的是子项的名称(文件名/文件夹名),而非完整路径。你传入的H:\FAKTURA\ARKIV\是完整路径,Get-ChildItem在H:\FAKTURA下查找子项时,子项名称是ARKIV,所以这个排除条件根本不生效,导致ARKIV被纳入了待移动列表。
  • 试图把ARKIV目录移动到它自己的子目录(H:\FAKTURA\ARKIV\ARKIV),这在Windows系统里是不允许的,直接触发错误崩溃。

修正后的脚本

$sourceDir = "H:\FAKTURA"
$destinationDir = "H:\FAKTURA\ARKIV"
$excludeFolder = "ARKIV"

if (Test-Path -Path $destinationDir) {
    # 只获取H:\FAKTURA下的一级文件夹,排除ARKIV,然后移动到目标目录
    Get-ChildItem -Path $sourceDir -Directory -Exclude $excludeFolder | 
        Move-Item -Destination $destinationDir -WhatIf
}

关键改动说明

  • 把-Exclude的值改成文件夹名ARKIV,而非完整路径,确保排除条件生效。
  • 添加-Directory参数,只处理文件夹(如果你的需求是只移动文件夹的话,避免误动文件)。
  • 统一使用变量存储路径,提升脚本可读性和维护性。

执行修正后的脚本,加上-WhatIf验证时,就只会看到除ARKIV外的其他文件夹被标记为待移动,去掉-WhatIf即可执行实际移动操作。

内容的提问来源于stack exchange,提问作者Henrik Rosqvist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 09:54:56