如何用命令執行 將 aa 資料夾所有 有 關聯到某字眼的檔名 ,複製到指定資料夾 bb裡。 如: 張雨生-大海.dat 我想把關聯到張雨生的檔名都複製到指定資料夾?

2021-02-05 3:51 pm
更新1:

我實驗了一下 發現中文檔案不能複製 英文和數字的都可以 是要透過改代碼的方式嗎 如要找尋多位關聯到的歌手 並照著這些清單複製 又要怎麼添加命令列 先謝謝這位匿名的朋友了 十分感謝

更新2:

如要在任何資料夾裡面 執行一個批次檔,(沒設來源,只認身處那個資料夾中,對目的處,進行複製)讓他跑到或複製到我要的路徑中 該怎麼設定呢

更新3:

測試了好一會終於成功了 最後能在有個不請之請嗎 我系統用win10  和xp 假設我要對 來源資料夾 的歌手清單 做一一的複製 到目的資料夾 如從 來源的清單 眾歌手檔案在同一資料夾。(張羽 林強 阿妹 ) 到目的資料夾 裡的子目錄(歸屬跟尋找複製清單裡的名稱一樣) 林強(檔案) 就自動複製到林強資料夾 阿妹(檔案) 也自動複製到阿妹資料夾 也就是說 讓我想複製的清單檔案 自己複製到目的資料夾裡面屬於 他自己一樣檔名的子目錄裡 如從 來源夾。尋找 林強 阿妹 並將它們 複製到 我的歌手(資料夾) 裡的子目錄 林強 和 阿妹 裡 萬分謝謝了

回答 (1)

2021-02-05 8:57 pm
✔ 最佳答案
不曉得你是用Win10還是Win7
修改了一下
嘗試看看...
--------------------------------------------------
chcp 950
@echo off
setlocal enabledelayedexpansion


set target="%~dp0測試_指定資料夾"

echo "目前來源資料夾為: %~dp0"
set source="%~dp0"

if "%~1" == "" (
    echo 單一搜尋模式
    set /p search="請輸入搜尋文字:"
    forfiles /p "%source:~1,-2%" /m "*!search!*" /s /c "cmd /q /c if @isdir==FALSE for %%a in (@file) do (if not "%%~a"=="%~nx0" (copy @path %target% /y)) "
) else (
    echo 多重搜尋模式
    for /f "delims=" %%a in ('type "%~f1"') do (
        forfiles /p "%source:~1,-2%" /m "*%%a*" /s /c "cmd /q /c if @isdir==FALSE for %%b in (@file) do (if not "%%~b"=="%~nx0" (copy @path %target% /y))"
    )
)
echo 已完成
endlocal
--------------------------------------------------
http://www.wikifortio.com/818708
附上一個測試資料夾, 可以試試看

set target 雙引號裡內容改成你自己的指定資料夾路徑

只搜尋一個名稱→直接按兩下BAT檔, 然後輸入名稱
搜尋多個名稱→把清單拖曳到BAT檔上面
跟BAT檔在同資料夾的檔案都會被搜尋到 (包含子資料夾)
清單每行一個名稱, 可以用萬用字元*跟?

要在其它資料夾底下用的話, 就把BAT檔複製到該資料夾底下
清單文字檔的路徑上盡量不要有一些^&@!之類的特殊符號, 會無法讀取.
文字檔建議存成UTF16 LE格式.


收錄日期: 2021-04-26 16:11:48
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20210205075141AAed7V6

檢視 Wayback Machine 備份