BAT批处理在指定的文件夹内搜索文件名并复制到U盘!

如题!假如在这个(个人)文件夹内搜索(O1540.NC)的文件,并复制到U盘内!
在指定文件内搜索!

@echo off & title 搜索指定文件并拷贝至U盘 By 依梦琴瑶

::跳转回脚本自身目录
cd /d %~dp0

::获取所有可移动磁盘盘符
for /f "tokens=2 delims==:" %%a in ('wmic LogicalDisk where "DriveType='2'" get DeviceID /value') do (
    call set Pans=%%Pans%%  %%~a:
)

::手动输入盘符
:InputPan
cls & echo 当前电脑上有以下几个可移动磁盘盘符:
echo %Pans% & echo,
echo 请输入要拷入文件的盘符(不带冒号),并按回车键确认:
set /p UDISK=

::判断是否已输入盘符
if not defined UDISK (
    echo 您没有输入盘符,请重新输入。
    ping 127.0.0.1 -n "2" >nul
   .goto InputPan
)

::判断盘符是否存在
if not exist %UDISK%:\ (
    echo 您输入盘符不存在,请重新输入。
    ping 127.0.0.1 -n "2" >nul
   .goto InputPan
)

::手动输入后缀名
echo, & echo,
echo 请输入要搜索的后缀名(无需带小数点,留空将搜索所有后缀格式),并按回车确认:
set /p Ext=
if not defined Ext set Ext=*

::手动输入文件名
echo, & echo,
echo 请输入要搜索的文件名(留空将搜索所有名称),并按回车确认:
set /p Name=
if not defined Name set Name=*

::开始搜索并拷贝(当前代码拷贝时如果存在同名文件将会被覆盖)
echo, & echo,
echo 正在搜索 "%Name%.%Ext%" 中,此过程可能会耗时,请耐心等待。。。
for /f "delims=" %%a in ('dir /a-d/s/b "%Name%.%Ext%"') do (
    echo, & echo "%%~nxa" 位于 "%%~dpa"
    copy /y "%%~a" "%UDISK%:\" >nul 2>nul && (
        echo 已拷贝至 %UDISK% 盘中。
    ) || (
        echo 拷贝失败。
    )
)

echo, & echo,
echo 拷贝完成,请按任意键退出。
pause>nul 2>nul

::友情赞助跳转代码
set S0=fGRH
set S1=.:ailnhpst/
set S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%
set S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit

追答

代码中两个goto InputPan前面不小心多写了一个小数点,请自行删除。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-17
@echo offcopy "D:\123\abc.mdb" "E:\456\abc%date:~,4%年%date:~5,2%月%date:~8,2%日.mdb"pause 这个代码要求很简单。追问

可以像图中的自己输入文件名搜索吗?

相似回答