Batch file 如何使用filename的子字符串创建文件夹
我需要创建一个批处理文件,从文件名的子字符串创建一个文件夹 文件名示例:txt_abc_123 创建一个名为“u”(abc)的文件夹 文件名为(123)Batch file 如何使用filename的子字符串创建文件夹,batch-file,dos,subdirectory,Batch File,Dos,Subdirectory,我需要创建一个批处理文件,从文件名的子字符串创建一个文件夹 文件名示例:txt_abc_123 创建一个名为“u”(abc)的文件夹 文件名为(123) 任何帮助都将不胜感激。请查看for/F的帮助,类似于for/F“tokens=2,3*delims=%%a in(“txt\u abc\u 123”)将在%%a和%%b中生成abc。如果您知道文件名中只有两个下划线,下面是一个解决方案: @echo off setlocal enabledelayedexpansion set xfile=tx
任何帮助都将不胜感激。请查看
for/F
的帮助,类似于for/F“tokens=2,3*delims=%%a in(“txt\u abc\u 123”)
将在%%a和%%b中生成abc。如果您知道文件名中只有两个下划线,下面是一个解决方案:
@echo off
setlocal enabledelayedexpansion
set xfile=txt_abc_123
set n=0
set zz=0
set before=
set file=
set folder=
:begin
set yy=!xfile:~%n%,1!
set /a n=n+1
if "%yy%"=="_" (
if %zz% EQU 0 (
set zz=1
) ELSE (
set zz=2
)
)
if %zz% EQU 0 (
set before=%before%%yy%
)
if %zz% EQU 1 (
if not "%yy%"=="_" (
set folder=%folder%%yy%
)
)
if %zz% EQU 2 (
if not "%yy%"=="_" (
set file=%file%%yy%
)
)
if not "%yy%"=="" (
goto begin
)
echo Folder: %folder%
echo File: %file%
if not exist %folder%\ (md %folder%)
move %xfile% %folder%\%file%
endlocal
如果您不知道只有两个下划线,则需要稍微修改
如果要对多个文件运行此操作,请将上面的txt\u abc\u 123
替换为%1
,保存到文件batchfilename.bat,然后使用运行
for %i in (*_*_*) do (
batchfilename.bat %i
)
这是Windows还是MS-DOS?