先贴上批处理
@echo off
:: 拷贝文件批处理
:: 想法是:比较目标路径和批处理路径(%~dp0)中如果
:: 有相同的文件,则从批处理路径拷贝到目标路径。
:: 设想用if/else来实现
:: ++++++++++++++++++++++++++++++++++++++++
setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir %userprofile%\desktop\*.jpg /b') do (
set dest=%%i
echo !dest!
for /f "delims=" %%i in ('dir %~dp0*.jpg /b') do (
set src=%%i
echo !src!
if "!dest!"=="!src!" (copy %~dp0!src! %userprofile%\desktop\!dest! /y
) else (
echo file.missing
)
)
)
@ping 127.1 -n 10 > nul
::启用延迟变量
::success at 22:08 2016/4/13 for make do clause embeded.....
主要是启动变量延迟,!var!,for嵌套。
然后扩展到批处理路径%~dp0,这个路径已经包含'\'