这需要多个部件:
延迟扩展。这需要从下面的循环中得到一个字符串:
setlocal enableextensions enabledelayedexpansion
一个for
循环用于遍历文件
for %%x in (*.txt) do (
找到相关的字符串:
set "filename=%%x"
set "folder=!filename:~1,2!"
注这里使用!filename!
。这是使用延迟扩展。通常环境变量以%filename%
引用,但是当解析完成的循环时,这些变量将被扩展,然后完成循环,然后将%filename%
减少为无。延迟扩展,使用!
解决了这个问题。
创建的文件夹:
if not exist !folder! mkdir !folder!
,如果它不存在这个仅创建该文件夹。
复制文件:
copy "%%x" !folder!
)
全部放在一起:
@echo off
setlocal enableextensions enabledelayedexpansion
for %%x in (*.txt) do (
set "filename=%%x"
set "folder=!filename:~1,2!"
if not exist !folder! mkdir !folder!
copy "%%x" !folder!
)
非常感谢 - 完美!对于'设置'文件夹=!文件名:〜1,2!''1和2 - 1的规则是恒定的,那么接下来的2个字符? – user1528218 2012-07-16 08:16:40
1是开始子串的字符,2是长度。 – Joey 2012-07-16 08:24:50
认为是这样,但是不会让它成为2,2,因为我想要使用的字符是从2位开始的2个字符,还是位置0的第一个字符? – user1528218 2012-07-16 08:29:04