Batch file 从文件名创建文件夹列表

Batch file 从文件名创建文件夹列表,batch-file,Batch File,我有一个包含许多文件的文件夹,名称如下:JBMA_23456.docx,JMRI_21456.docx,CM_22554.docx,QUA_11224.docx。如何为每个文件创建一个子文件夹,该文件具有与该文件相同的名称,但没有.docx文件扩展名?此外,我只想将文件名存储为变量 例如,我需要从文档中创建一个子文件夹,名为JBMA_23456 JBMA_23456.docx。有人能给我指出正确的方向吗?不完全清楚你要的是什么 不管怎样,这是我写的代码 echo off chcp 65001 c

我有一个包含许多文件的文件夹,名称如下:
JBMA_23456.docx
JMRI_21456.docx
CM_22554.docx
QUA_11224.docx
。如何为每个文件创建一个子文件夹,该文件具有与该文件相同的名称,但没有
.docx
文件扩展名?此外,我只想将文件名存储为变量

例如,我需要从文档中创建一个子文件夹,名为
JBMA_23456

JBMA_23456.docx
。有人能给我指出正确的方向吗?

不完全清楚你要的是什么

不管怎样,这是我写的代码

echo off
chcp 65001
cls
for /f "usebackq delims=." %%0 in (`dir /b "*.docx"`) do (
set filename=%%0
md %filename%
)
cmd /k
它为每个文件创建一个新文件夹。请随意询问这是否不是您所期望的

@echo off
for %%A in (*.docx) do if not exist "%%~nA" md "%%~nA"
这将创建一个与每个
.docx
文件同名的文件夹

for/?
call/?
中查看修改器。
n
修饰符是
名称

路径修改器:


dpnx
drive、path、name和ex张力。

下面是一个示例批处理文件,尝试执行您问题中列出的任务:

@Echo关闭
SetLocal EnableExtensions DisableDelayedExpansion
设置“BaseDir=C:\Users\Compo\Desktop\test”
设置“FileExt=.docx”
对于/F“Delims=”('Set var[2^>Nul')中的%%A,请执行设置“%%A=”
设置“i=0”
对于/F“Delims=“%%A In('其中“%BaseDir%”):*%FileExt%2^>Nul”)Do(设置/A i+=1
调用集“var[%%i%%]=%%~nA”
如果存在“%%~dpA%%~nA\”(回显子文件夹%%~nA已存在于%BaseDir%
)Else(Set/P“=在%BaseDir%”中创建子文件夹%%~nA(Nul 2>&1&&&(Echo=成功)| | Echo=失败))
设置变量[2>Nul
暂停

为了使用它,您首先要确保保存文件的目录(不包括任何尾随的反斜杠)位于第4行的=
和单个文件扩展名(包括前导段
)之间,类似地,在第
5行

中,“设置文件名”的第行显示了“命令语法不正确”。这无法工作,因为它缺少延迟扩展!也不要将数字用作变量的
,它们用于访问参数!