我有几个名为:
的文件夹001TRIAL1
002TRIAL2
003TRIAL3
...etc.
我正在尝试使用batch-file重命名所有文件夹并截断它们以获取:
TRIAL1
TRIAL2
TRIAL3
...etc.
我尝试了以下代码:
for /D %%X in (C:\FOLDER1\FOLDER2\*) do (
move %%X %%X:~3,10%
)
Pause
但是我无法获得想要的结果。
此脚本不起作用,我不知道该怎么做。重命名允许重命名文件夹,但我无法截断所需的文件夹。
答案 0 :(得分:2)
您不能像这样扩展一个元变量,需要将值设置为适当的变量,然后执行扩展。另外,由于该变量将在代码块内设置,因此您需要启用延迟扩展。最后,您将使用Ren
而不是Move
,这将要求该目录已经存在,,并且您需要删除重命名后的原始目录。>
尝试一下:
@Echo Off
SetLocal DisableDelayedExpansion
For /D %%A In ("C:\FOLDER1\FOLDER2\*") Do (
Set "_d=%%~nxA"
SetLocal EnableDelayedExpansion
If Not Exist "%%~dpA!_d:~3!" Ren "%%A" "!_d:~3!"
EndLocal
)