【发布时间】:2019-12-27 16:41:52
【问题描述】:
我正在尝试将批处理文件移动到它们各自的文件夹中,它们具有相似的名称,希望我要移动的批处理文件最后具有“构建”。例如:
文件夹名称:wld-vine-tstrm
Bat 文件名:wld-vine-tstrmBuild.bat
在同一个父目录中,我也有与文件夹名称相同的批处理文件,我不希望这些文件移动,只移动文件名末尾带有“Build”的批处理文件。
setlocal enabledelayedexpansion
set folderpath=E:\Build\ModelBatches\world-wild\actor50
for %%f in (%folderpath%\*.bat) do (
set "foldername=%%~nf"
move "%%f" "!foldername:~0,-5!"
)
这与我正在寻找的结果非常接近;它将“构建”批次移动到相应的文件夹,但它也会从我不想移动的批次中删除最后 5 个字符。
以下批处理文件现在缺少最后 5 个字符“tstrm”
总而言之,一个目录下的每个文件夹都有两个批处理文件,我只想将一个以“Build”结尾的移动到它的文件夹中。
【问题讨论】:
-
那你为什么不用
*Build.bat而不是*.bat呢? -
那行得通,不知道我是怎么错过的。谢谢。
-
将
move命令行更改为move "%%~f" "!foldername:~0,-5!\"(注意尾部的反斜杠),因此您可以强制将目标解释为文件夹并避免文件被重命名...
标签: windows batch-file