我有另一个问题,非常相似 Batch Scripting Moving files with timestamp但我遇到了问题。
我有一个文件系统C:\ Test \ Baseline - 在Baseline文件夹下我有很多文件夹,范围从1到10+这些都是图像文件。我想将那些仅以-not tasty.jpg
文件结尾的文件夹中的所有图像复制到Baseline文件夹中,但删除了-not tasty.jpg
部分。
这里有一个例子:左
C:\Test\Baseline:
apple.jpg,orange.jpg,watermellow.jpg,strawberry.jpg,eggs.jpg
C:\Test\Baseline\07-14-14:
apples-tasty.jpg,apples-not tasty.jpg,fruits-tasty.jpg,fruits-not tasty.jpg
C:\Test\Baseline\07-16-14:
cherry-tasty.jpg,cherry-not tasty.jpg,orange-tasty.jpg,orange-not tasty.jpg
所以最后当我运行这个批处理脚本时,它应该采取07-14-14中的文件apple-not tasty.jpg和fruits-not tasty.jpg将它们重命名为-not tasty.jpg - > apple.jpg和fruits.jpg移动/复制到它的父目录C:\Test\Baseline
并在必要时覆盖 - 也采取cherry-not tasty.jpg,orange-not tasty.jpg - > cherry.jpg,orange.jpg移动/复制到C:\Test\Baseline
所以我们留下了
C:\Test\Baseline:
apple.jpg,orange.jpg,watermellow.jpg,strawberry.jpg,eggs.jpg,fruits.jpg,cherry.jpg
我希望你能理解这一点。任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
希望这对你有用 -
@echo OFF
cd D:\test\baseline
for /f "delims=" %%i in ('dir /s /b "*-not tasty.*"') do copy /y "%%~fi" d:\test\baseline\* >nul 2>&1
for /f "delims=" %%i in ('dir /b "*-not tasty.*"') do CALL :rename "%%i"
goto :EOF
:rename
set filename=%1
set newfilename=%filename:-not tasty=%
ren %filename% %newfilename% >nul 2>&1
if %errorlevel% EQU 1 del %newfilename% & ren %filename% %newfilename%
:EOF
干杯, ģ