美好的一天,
我使用松下摄像机录制视频,并使用Handbrake将 *.avchd文件压缩为 *.mp4文件。为了归档目的,我需要将原始文件时间戳(创建日期和时间(复制到编码 *.mp4文件。*.AVCHD文件位于文件夹Test2中的文件夹Test1和 *.mp4文件中。文件名等于文件结尾。
我尝试修改此(如何使用PowerShell复制文件并保留原始时间戳(解决我的需求,但失败了:
$AVCHD = 'test1'
$MP4 = 'test2'
$files = gci $AVCHD | % {$_.Name}
ForEach ($AVCHD_file in $files) {
$MP4_file.Name = $AVCHD_file.BaseName + ".mp4"
$MP4_file.CreationTime = $AVCHD_file.CreationTime
$MP4_file.LastAccessTime = $AVCHD_file.LastAccessTime
$MP4_file.LastWriteTime = $AVCHD_file.LastWriteTime
}
PowerShell抱怨找不到文件属性。接下来我要做什么?
谢谢您的帮助,基督徒
问题是$MP4_file
不是对象,因此没有属性或属性要设置。
获取FileInfo对象的简单方法是使用GCI并根据源文件的Basename构建合适的路径。喜欢,
ForEach ($AVCHD_file in $files) {
$MP4_file = gci $("$MP4{0}.mp4" -f $AVCHD_file.basename)
if (test-path $MP4_file ) {
# Attribute set goes here
}
}
将行$files = gci $AVCHD | % {$_.Name}
更改为 $files = gci $AVCHD
并尝试。
通过将$files
声明为$files = gci $AVCHD | % {$_.Name}
,$files
基本上仅存储文件的名称,而没有其他内容。它不包含其他属性,因此您无法使用它。
尝试将$files
更改为 $files = gci $AVCHD
。现在$files
将包含您所有必需的文件属性,您将能够根据要求使用它。