我正在尝试编写一个脚本,将文件从原始位置复制到备份位置。复制到备份位置后,我希望重命名的文件包含名称中的lastwritetime。
例如:\\ server1 \ C $ \ Logs \ Logfile-1.txt(最后写入2017年12月20日星期三上午5:00:27)复制到\\ backupserver \ c $ \ LogBackups \ Server1Logfile20171220050027.txt
生成日志文件的程序在达到一定大小时会用-1,-2,-3等迭代它们。
我有一个csv,其中包含以下信息
OldFilePath,NewFilePath,NewFileName
\\server1\c$\Log\LogFile-*.txt,\\backupserver\c$\LogBackups\,Server1LogFile
\\server2\c$\Log\LogFile-*.txt,\\backupserver\c$\LogBackups\,Server2LogFile
\\server3\c$\Log\LogFile-*.txt,\\backupserver\c$\LogBackups\,Server3LogFile
这是我到目前为止的脚本。
import-csv \\backupserver\c$\scripts\test.csv | foreach-object {
$FilePath = $_.OldFilePath
$NewFilePath = $_.NewFilePath
$NewFileName = $_.NewFileName
copy-item -path $_.OldFilePath -Destination "$NewFilePath$NewFileName$LastWriteTime.txt"
}
我尝试了以下命令来设置$ LastWriteTime变量,到目前为止,还没能正确格式化输出。
$LastWriteTime = Get-ItemPropertyValue -path \\server1\C$\Logfile-1.txt -name LastWriteTime |
Format-list Year,Month,Day,Hour,Minute,Second
&
$LastWriteTime = Get-ChildItem $OldFilePath | select LastWriteTime
任何指导我正确方向的帮助将不胜感激!
假设你有一个DateTime $ dt,你可以这样格式化:
$dt = [DateTime]::Parse((get-item D:\temp\grinder.jpg).LastWriteTime)
$fmt = "{0:N4}{0:N2}{0:N2}{0:N2}{0:N2}{0:N2}" -f $dt.Year, $dt.Month, $dt.Day, $dt.Hour, $dt.Minute, $dt.Second
这使:
20171220110535
对于
Wednesday, December 20, 2017 11:05:35 AM
由此,您应该能够在其余代码上取得进展。