這需要多個部件:
延遲擴展。這需要從下面的循環中得到一個字符串:
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