我正在創建一個稍后運行的批處理檔案,該檔案將用于將檔案從一個位置復制到另一個位置,同時重命名檔案,跳過任何現有檔案,并且不提示用戶。要復制的檔案示例:
00021001.txt
00021001.xyz
00021001.abc
00021001001.jpg
復制的檔案將具有以下名稱:
00022001.txt
00022001.xyz
00022001.abc
00022001001.jpg
我嘗試過的事情:
xcopy C:\Testing\1000012\21\00021*.* C:\Testing\1000013\22\00022*.* /D
這幾乎可以做到。它將第一個位置中以“00021”開頭的所有檔案復制到第二個位置,同時將它們正確重命名為以“00022”開頭。它會跳過所有具有相同名稱和日期戳的檔案,但最終會提示從源中復制比目標新的任何檔案。
robocopy C:\Testing\1000012\21\ C:\Testing\1000013\22\ 00021*.* /xo /xn /xc
我希望通過排除舊的、新的和相同的日期檔案它會起作用(即使它不重命名 - 我只會在單獨的步驟中這樣做。)不幸的是,這最終會覆寫現有目標上的新源檔案檔案,如果它們是不同的檔案大小。
我什至在 PowerShell 中嘗試過 Copy-Item 命令。但它不像 Xcopy 那樣進行重命名,也不會跳過現有檔案(盡管我可以讓它確認并說“拒絕所有”。)
Copy-Item -Path "C:\CWUImageCompare\Testing\1000012\CWU\chemistry\129\21\00021*.*" -Destination "C:\CWUImageCompare\Testing\1000013\CWU\chemistry\129\20\" -Confirm
如果 xcopy 有“如果存在則跳過”標志我會全部設定,但它沒有。
uj5u.com熱心網友回復:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
rem The following settings for the source directory & destination directory are names
rem that I use for testing and deliberately includes spaces to make sure
rem that the process works using such names. These will need to be changed to suit your situation.
SET "sourcedir=u:\your files"
SET "destdir=u:\your results"
FOR /f "skip=1delims=" %%b IN ('xcopy /L /Y "%sourcedir%\00021*.*" "
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/523424.html
