2013-02-19 332 views
2

我想找到一種方法來創建Windows批處理腳本,該腳本將查看充滿.pdf文件的目標文件夾並將它們移動(或複製)到具有基於文件名的現有子文件夾的另一個目錄。Windows批處理將PDF文件按名稱移動(或複製)到相應的文件夾

文件和文件夾是實際的人的名字。我希望能夠使用腳本將該人員的pdf導入其現有文件夾。

說我在我的文件夾中有2個文件; smithJohn015.pdfthomasBill030.pdf。 我希望能夠將smithJohn015.pdf放入文件夾SmithJohnthomasBill030.pdf放入文件夾ThomasBill

我不希望腳本創建新文件夾或覆蓋現有文件,如果有重複的文件名。

我不一定要找人爲我寫腳本,但如果任何人都可以讓我開始正確的方向,將不勝感激。

回答

1

嘗試修改this answer爲您的邪惡目的。

@echo off 
setlocal 

pushd "c:\path\to\PDFs" 

for /d %%I in (c:\Path\To\People\*) do (
    for %%F in (*) do (
     for /f %%A in ('echo %%~nF ^| find /i "%%~nI"') do (
      set /p a="Moving %%F to %%I... "<NUL 
      move "%%F" "%%I" >NUL 
      echo Done. 
     ) 
    ) 
) 
popd 

你需要前移到添加支票if not exist pdffile,但無論如何,有一個爲你的起始方向。

0

以下內容假定目標子文件夾的位置只包含PDF文件可能存在的子文件夾,並且您要移動的每個PDF都有一個格式化爲相應子文件夾名稱的名稱,後跟正好三個字符(與您的示例中相同):

@ECHO OFF 
FOR /D %%D IN ("D:\path\to\subfolders\*") DO (
    MOVE "D:\path\to\PDFs\%%~nD???.pdf" "%%D" 
) 

或者作爲一襯墊直接在命令提示來執行:

FOR /D %D IN ("D:\path\to\subfolders\*") DO (MOVE "D:\path\to\PDFs\%~nD???.pdf" "%D") 
相關問題