Win Batch:复制不同文件夹上的文件

时间:2014-07-02 14:21:00

标签: windows batch-file

我有一个bin文件夹,其中包含在调试和发布中构建的dll文件:

myFirstFile.dll
myFirstFiled.dll
mySecondFile.dll
mySecondFiled.dll
...

文件名彼此不同,但规则是在调试模式下构建的dll以' d'结尾。 我无法在.bat脚本中找到一种方法将这些文件复制到名为Debug和Release的两个不同文件夹中,以便dll以' d'将复制到Debug文件夹和Release文件夹中的所有其他文件夹中。

2 个答案:

答案 0 :(得分:2)

mkdir Debug
mkdir Release
for %a in (*.dll) do if exist %~nad.dll move %~nad.dll Debug
move *.dll Release

答案 1 :(得分:2)

您可以使用in-place variable editing 检查文件名结尾,如下例所示:

setlocal enabledelayedexpansion
for %%F in (*.dll) do (
    set plainname=%%~nF
    if "!plainname:~-1!"=="d" (
        move %%F DEBUG
    ) else (
        move %%F RELEASE
    )
)
endlocal