[英]Moving files to folders based on Name and Course Code with Batch File
我一直在尋找解決方案,並且找到了類似的解決方案,但是它們要么具有固定長度的文件名,要么被用於對文件夾中的文件進行排序,而不是移動它們。
我要嘗試做的是當工作人員在S驅動器中放置一個文件時,該文件名為:
Bloggs Joe AHC20410 Student Forms.pdf
批處理文件(在一天中的特定時間運行)會將文件移至H盤 ,並移至以下文件夾中:
H:\Student Records Current\Bloggs Joe AHC20410
因此,例如,運行批處理文件時, S Drive可能如下所示:
Bloggs Joe AHC20410 Student Forms.pdf
Bloggs Joe AHC20410 Evidence.jpg
Doe Jane AHC31010 Workbook.doc
Doe Joe AHC20410 Images.png
任何幫助將不勝感激!
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
FOR /f "delims=" %%d IN (
'dir /b /ad "%destdir%\*ahc*" 2^>nul ^|findstr /i /r /c:"AHC[0-9][0-9][0-9][0-9][0-9]"'
) DO (
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\%%d*" 2^>nul ^|findstr /i /r /c:" AHC[0-9][0-9][0-9][0-9][0-9] "'
) DO (
ECHO(MOVE "%sourcedir%\%%a" "%destdir%\%%d\"
)
)
GOTO :EOF
您需要更改sourcedir
和destdir
的設置以適合您的情況。
所需的MOVE命令僅僅ECHO
編用於測試目的。 確認命令正確無誤后 ,將ECHO(MOVE
更改為MOVE
即可實際移動文件。Append >nul
可禁止報告消息(例如,已1 file moved
)
假定目標目錄已經存在。
本質上,找到所有包含ahc
的目錄名,並過濾ahc
,然后過濾ahc followed by 5 numerics
以取得良好的效果。 將這些字符串分配給%%d
。
然后,對於找到的每個%%d
,查找以%%d
開頭並且包含字符串ahc followed by 5 numerics
且前后均帶有空格的源文件。
將名稱綁定在一起並顯示結果...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.