我想將文件從一個目錄移動到另一個目錄,而不是* .log文件。 我已經嘗試過XCOPY,因爲它有一個EXCLUDE開關,但它不會複製,文件仍然保留爲源文件夾。使用批處理文件移動* .log除外的文件
回答
你也許可以這樣做:
mv | grep -v *.log | ./* /path
要測試,如果你將要移動你可以做一個「LS」和管道,爲給「grep」缺少了正確的文件「MV」
沒錯,但我認爲問題的作者希望在MS-DOS中有相同的命令環境,這意味着帶有批處理文件命令的* .bat或* .cmd文件。 – UltraCommit 2011-06-14 14:01:30
http://www.pcreview.co.uk/forums/use-exclude-option-xcopy-t1469487.html
在上一個超鏈接,我可以與相關復讀以下問題:
問題:
嗨,
我在下面使用xcopy命令,但它不會做我想要的。相反,它 抱怨「無法讀取文件:.obj」然後停止。 xcopy c:\ t1 c:\ t2 /EXCLUDE:.obj
我希望複製過程中跳過所有.obj文件。有人能幫我嗎? 謝謝。託尼
答:
的/排除指令指定包含的 文件名字符串來排除的文件列表。例如,要做你想做的事情,你需要創建一個文件,假設我們稱之爲MyExcludes.txt。在這個文件中, 只有一個filespec - 「.obj」(不包括引號)。
然後更改命令以這樣的:
XCOPY C:\ T1 C:\ T2 /EXCLUDE:MyExcludes.txt
===>這是一個部分解決方案,因爲你複製所有,但。 obj文件,但不要將它們從源文件中刪除。您可以嘗試將XCOPY的輸出重定向到文件,然後手動將DELETE添加到由XCOPY命令寫入的文件的每一行。最後,您執行該文件以刪除源文件。
yup如果沒有別的,那麼可以做到這一點,但由於要移動的文件數量會非常高,所以看看是否有任何選項來移動它們,而不是2個週期:複製並寫入文件,然後刪除他們。 – 2011-06-14 14:41:50
爲了讓您一開始,試試這個蝙蝠
for %%a in (%1\*) do (
if /I not "%%~xa"==".log" (
ECHO move /Y %%~fa %2\%%~nxa
)
)
經過仔細的檢查,刪除ECHO
命令。
有關更多信息,請參閱HELP FOR
,HELP IF
以及用於從文件名中提取擴展名的語法,請參閱HELP CALL
。
「經過認真測試,刪除ECHO命令。」 - 有史以來最好的建議。 – peterchen 2012-07-03 07:54:59
如果你可以使用ROBOCOPY,試試這個:
ROBOCOPY C:\Source C:\Dest * /MOV /XF *.LOG
沒有ROBOCOPY,你可以在批量關閉。這將採用傳遞的通配符,在其上運行dir,然後刪除以.log結尾的目錄列表中的條目。然後它會調用每一個移動。由於我們要逐個移動每個文件,因此我們需要確保目標存在並且是一個文件夾 - 否則移動可能會將其解釋爲移動並重命名。
請注意,如果您專門爲其傳遞單個文件夾名稱,則dir返回的內容可能不是您所期望的。不過,所有通配符都應該可以正常工作。
@if ("%~1") == ("") goto usage
@if ("%~2") == ("") goto usage
@if not ("%~3") == ("") goto usage
@if not exist "%~2" mkdir "%~2"
@dir /a:d "%~2" >nul 2>nul
@if %errorlevel% neq 0 echo Directory %2 cannot be created or a file with that name already exists in that location. && exit /b 1
@for /f "delims=" %%a in ('dir /b "%~1" 2^>nul ^| findstr /e /i /v ".log"') do @move /y "%%a" "%~2" >nul && echo %%a
@goto :eof
:usage
@echo movewithoutlog.bat
@echo Moves a set of files, omitting any with .log extension.
@echo Usage: movewithoutlog.bat files destination
@echo e.g. movewithoutlog.bat *.* ..\newdestination
@exit /b 1
- 1. 使用批處理腳本在文件名中移動文件
- 2. 自動移動批處理文件
- 3. 按批改日期移動文件的批處理文件
- 4. 意外使用(批處理文件
- 5. 用於文件移動的dos批處理文件
- 6. 批處理文件刪除文件夾
- 7. 使用批處理文件
- 8. 使用批處理文件
- 9. 使用批處理文件啓動hostednetwork
- 10. 根據名稱移動文件的批處理文件
- 11. 使用批處理文件刪除大於90天的文件
- 12. 使用批處理文件在名稱中使用空格移動文件
- 13. FTP批處理文件移動遠程文件
- 14. 批處理文件移動.txt到另一個文件夾
- 15. DOS批處理文件每10分鐘移動2000個文件
- 16. 批處理腳本移動壓縮和刪除文件
- 17. 使用批處理刪除文件和文件夾
- 18. 如何使用批處理文件刪除文件
- 19. 使用批處理文件刪除和複製文件
- 20. 使用批處理文件查找並刪除資源文件
- 21. 使用批處理文件刪除一些文件
- 22. 批處理文件 - 刪除文件只有在另外的文件存在
- 23. 如何從批處理文件中調用批處理文件?
- 24. 使用批處理腳本逐行解析文本文件(批處理文件)
- 25. 刪除批處理文件夾中的文件和文件夾
- 26. 批處理文件刪除文件夾中的文件
- 27. 批處理:使用查找文件搜索目錄樹並移動文件
- 28. 批處理文件刪除除指定列表以外的所有文件夾
- 29. 批處理將文件夾中的文件移動到另一個文件夾?
- 30. 批處理文件「」
最安全(最簡單)的方法是使用XCOPY然後DEL舊文件。我個人不喜歡「移動」,就好像在移動命令(文件損壞等)期間發生的事情一樣,您永久丟失了該文件。我聽說過一些情況,在運行這個命令的時候人們已經停電,並且還丟失了丟失的文件o.0 – Mechaflash 2011-06-17 19:35:43