PowerShell获取MP4文件大小异常且提示文件不存在的原因
问题原因分析与解决方案
咱们一步一步拆解你遇到的两个问题:
1. 为什么.Length返回46而不是实际文件大小?
你执行的这行命令:
$pd_output = 'C:\Users\User0\Desktop\kcg_convert\Produce.mp4'.Length
这里的.Length是作用在字符串上的属性,它计算的是这个路径字符串的字符总数,而不是文件的字节大小。数一下这个路径的字符数,刚好是46个,所以返回46——这和你要查询的文件完全没有关系。
2. 为什么Get-Item和Get-ItemPropertyValue提示文件不存在?
看你dir的输出,文件Produce.mp4实际存放在C:\Users\User0\Desktop\kcg_transcode文件夹里,但你后续命令里写的路径是C:\Users\User0\Desktop\kcg_convert\Produce.mp4——文件夹名称写错了(kcg_transcode vs kcg_convert),这两个是完全不同的目录,PowerShell自然找不到对应的文件。
正确的操作命令
要获取目标文件的实际大小,你需要使用正确的路径:
# 方法1:通过Get-Item获取文件对象后读取Length属性 $pd_output = (Get-Item 'C:\Users\User0\Desktop\kcg_transcode\Produce.mp4').Length $pd_output # 方法2:直接用Get-ItemPropertyValue读取Length属性 Get-ItemPropertyValue 'C:\Users\User0\Desktop\kcg_transcode\Produce.mp4' -Name Length
小提醒
- 一定要区分字符串的
.Length和文件对象的.Length:前者是字符数量,后者是文件的字节大小; - 执行文件操作前务必仔细核对路径,尤其是文件夹名称,很容易因为拼写错误或者目录混淆导致找不到文件。
内容的提问来源于stack exchange,提问作者srt111
相关产品推荐
相关产品推荐

