✔ 最佳答案
不曉得你是用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格式.