我需要创建一个批处理文件,以便从文件名的子字符串创建一个文件夹 示例文件名:txt_abc_123 创建一个名称介于" _"之间的文件夹(ABC) 和文件名(123)
任何帮助将不胜感激。
答案 0 :(得分:0)
查看FOR /F
的帮助,类似FOR /F "tokens=2,3* delims=_" %%a in ("txt_abc_123 ")
的内容会在%% a中产生abc,在%% b中产生123。
答案 1 :(得分:0)
如果您知道文件名中只有两个下划线,这是一个解决方案:
@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_abc_123
替换为%1
,保存到文件batchfilename.bat,然后使用
for %i in (*_*_*) do (
batchfilename.bat %i
)