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

使用Move-Item命令时如何保留文件名大小写?

如何在PowerShell移动文件时保留文件名的大小写?

这个问题我之前也碰到过,其实核心原因在于Windows文件系统的大小写特性——NTFS本身支持保留文件名的大小写,但默认是不区分大小写的(简单说就是系统认为FileName.mdf和filename.mdf是同一个文件)。Move-Item有时候会因为系统的默认行为自动调整文件名的大小写,不过我们可以通过几个方法强制保留原文件名的大小写:

方法一:用-LiteralPath参数指定源文件

有时候直接写路径时,PowerShell可能会在解析过程中悄悄调整大小写,改用-LiteralPath参数就能严格按照你输入的路径字符串来操作,完全不做任何大小写的自动转换。执行命令如下:

Move-Item -LiteralPath C:\From\FileName.mdf -Destination C:\To\ -Force

方法二:先复制再删除(确保精准控制文件名)

如果第一种方法还是没效果,可以先复制文件到目标目录,直接指定目标文件名的大小写,再删除源文件。这样能确保目标文件的大小写和源文件完全一致:

# 复制时指定完整的目标文件名(包含正确大小写)
Copy-Item -LiteralPath C:\From\FileName.mdf -Destination C:\To\FileName.mdf -Force
# 删除源文件
Remove-Item -LiteralPath C:\From\FileName.mdf -Force

方法三:检查目标目录的现有文件

如果目标目录里已经存在一个不区分大小写的同名文件(比如已经有filename.mdf),那即使你用Move-Item覆盖,系统也不会改变现有文件的大小写。这种情况下,你需要先删除目标目录里的旧文件,再执行移动操作;或者在移动时直接指定目标文件名的大小写,确保覆盖时用你想要的格式。

可选:开启目标目录的区分大小写功能

如果你需要长期在这个目录下保留文件名的大小写,可以开启该目录的区分大小写特性(需要管理员权限)。执行以下命令:

fsutil file setCaseSensitiveInfo C:\To enable

开启后,这个目录下的文件会严格区分大小写,后续的所有文件操作都会保留文件名的大小写。不过要注意,有些Windows程序默认是不区分大小写的,开启这个设置可能会影响这些程序的正常访问,谨慎使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:20:09