@echo off
set path=C:\Windows\System32;%path%
::设置系统的环境变量,解决Xcopy不是可用的内部命令问题。
::SETX /M PATH=C:\Windows\System32;%path%
::SETX /M 为永久设置系统环境变量
set “source=C:\xcopy测试”
set “target=D:”
for /f “delims=” %%i in (‘dir /ad /b /s “%target%Program*”’) do (
echo “%source%” --^> “%%i”
xcopy “%source%” “%%i” /s /e /y
)
::%%i是指定变量,bat用%类似python的\,意思为反向注释
pause
:: 将源目录的文件拷贝至D盘program开头的目标目录中。
运行结果:
D:\bat>t1.bat
“C:\xcopy测试” --> “D:\Program Files”
C:\xcopy测试\测试文档.txt
C:\xcopy测试\测试文档1.txt
C:\xcopy测试\测试文档2.txt
C:\xcopy测试\测试文档3.txt
复制了 4 个文件
“C:\xcopy测试” --> “D:\Program Files (x86)”
C:\xcopy测试\测试文档.txt
C:\xcopy测试\测试文档1.txt
C:\xcopy测试\测试文档2.txt
C:\xcopy测试\测试文档3.txt
复制了 4 个文件
下一步解决拷贝至指定目标目录d:%target%\des,target具备program files开头,有或者没有(X86)。