[英]Windows batch script copy file last modified
我正在嘗試編寫一個快速批處理腳本,以查看一個文件的上次修改日期,並將其與其他幾個文件的上次修改日期進行比較,如果它大於其他上次修改的日期,它將文件復制到這些目錄中。 這是我到目前為止的內容:
@echo off
for %%a in ([srcFile]) do set lastmodSrc=%%~ta
echo lastmodSrc
for %%a in ([dstFile1]) do set lastmodDst1=%%~ta
for %%a in ([dstFile2]) do set lastmodDst2=%%~ta
for %%a in ([dstFile3]) do set lastmodDst3=%%~ta
for %%a in ([dstFile4]) do set lastmodDst4=%%~ta
if lastmodSrc GTR lastmodDst1 xcopy [srcFile] [dstDir1] /-y
if lastmodSrc GTR lastmodDst2 xcopy [srcFile] [dstDir2] /-y
if lastmodSrc GTR lastmodDst3 xcopy [srcFile] [dstDir3] /-y
if lastmodSrc GTR lastmodDst4 xcopy [srcFile] [dstDir4] /-y
pause
方括號是完整的路徑名。 現在它正在做的是將lastmodSrc和lastmodDst保存為字符串(至少看起來是這樣),因此實際上並沒有檢查mod日期。 我對Windows中的批處理腳本非常不滿意,認為這里有人可以提供幫助。 提前致謝!
另一種可能更簡單的方法(假設我了解目標)將是在xcopy上使用/d
選項。 如果指定了日期(無日期),則僅在源較新時才復制文件:
xcopy /d srcfile dstfile
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.