使用批处理文件中文件名的前2个字符创建子目录

时间:2010-11-15 12:58:12

标签: batch-file substring

我正在尝试创建一个批处理文件,该文件将循环访问文件夹中的JPG / PNG列表,并使用这些图像名称的前2个字符创建子目录。创建子目录后,它会将图像移动到正确的子文件夹中。

例如,ABC.jpg和DEF.png将创建AB和DE,并将ABC.jpg移动到AB和DEF.png到DE。

我遇到的问题是提取前2个字符并创建子目录。这是我到目前为止的相关代码:

for %%A in (*.jpg,*.png) do (

  set _xx=%%A

  md %_xx:~0,2%
)

[错误/重复处理,为清楚起见,文件移动本身已被删除]

回显变量_xx显示没有分配给它的值,但是回显%% A会给出正确的文件名。

运行此脚本实际上会创建2个名为“2”和“〜0”

的子目录

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您需要使用

setlocal enabledelayedexpansion

位于文件顶部,然后代替

md %_xx:~0,2%

使用

md !_xx:~0,2!