2016-03-01 30 views
2

這樣的IM在批處理編程一個完整的小白,但我有這個小程序將文件移動到基​​於文件名的特定文件夾:移除開始上升到「_」

@echo off 
for %%a in (*.jpg) do (
echo processing "%%a" 
    for /f "tokens=1 delims=_" %%b in ("%%~nxa") do (
    move "%%a" "%%b" >nul 
) 
) 
pause 

我要擴展這個程序來重命名一些文件。 程序正在移動的文件全部命名爲:「0_107」或「151_107」。它們分別被移動到名爲「0」和「151」的文件夾中。

現在我還希望它可以切掉之前的所有內容,包括下劃線。 這意味着「151_107」仍然應該被移動到文件夾「151」,但該文件應該被命名爲「107」。

希望這是有道理的 - 在此先感謝

問候

回答

1

您需要的FOR-參數移動到一個變量,那麼你就可以刪除與*<text>=語法的主導作用。

setlocal EnableDelayedExpansion 
for %%a in (*.jpg) do (
    echo processing "%%a" 
    for /f "tokens=1 delims=_" %%b in ("%%~nxa") do (
     set "name=%%~a" 
     set "name=!name:*_=!" 
     echo New destination %%b\!name! 
     move "%%~a" "%%b\!name!" >nul 
    ) 
) 
+0

請原諒我的無知,但如何將這看起來實施到我的代碼段? – AVP

+0

謝謝jeb,它完美的作品! – AVP