Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows ms dos命令-在每个父三级文件夹下创建许多相同的子文件夹_Windows_Command Line_Command_Dos_Subdirectory - Fatal编程技术网

Windows ms dos命令-在每个父三级文件夹下创建许多相同的子文件夹

Windows ms dos命令-在每个父三级文件夹下创建许多相同的子文件夹,windows,command-line,command,dos,subdirectory,Windows,Command Line,Command,Dos,Subdirectory,我的文件夹结构如下: world country city1 city2 city3 ... 世界 国家 城市1 城市2 城市3 ... 因为我的工作,我需要在每个城市下创建许多相同的子文件夹。我搜索了谷歌,但无法理解代码,因为我对dos环境一无所知。我需要: world country city1 subfolder01 subfolder02

我的文件夹结构如下:

world country city1 city2 city3 ... 世界 国家 城市1 城市2 城市3 ... 因为我的工作,我需要在每个城市下创建许多相同的子文件夹。我搜索了谷歌,但无法理解代码,因为我对dos环境一无所知。我需要:

world country city1 subfolder01 subfolder02 subfolder03 ... city2 subfolder01 subfolder02 subfolder03 ... city3 subfolder01 subfolder02 subfolder03 ... 世界 国家 城市1 子文件夹01 子文件夹02 子文件夹03 ... 城市2 子文件夹01 子文件夹02 子文件夹03 ... 城市3 子文件夹01 子文件夹02 子文件夹03 ... 如何使用Windows7命令自动实现这一点

对不起,我不能写像“我试过了,但是……”这样的东西,因为我甚至什么都没试过。 谢谢

更新 我的实际文件夹名称包括空格和数字

FOR /D %%V in ("C:\FOLDER\\SUBFOLDER\\*") DO (
 md %%V\\"subfolder01"
 md %%V\\"subfolder02"
 md %%V\\"subfolder03"
 )
Echo "DONE!"
如果路径太深和/或文件夹名称中有许多“特殊字符”,如空格、“-”等,则必须执行以下操作:
a)将目标文件夹移动到同一驱动器的根目录下(也可以将其重命名,例如重命名为“aaa”),批量修改上述路径,执行它并将文件夹移回原始位置

b)使用VB脚本而不是windows批处理:
选项显式
Option Explicit
Dim myFolder, mySubs
myFolder="C:\folder\subfolder" mySubs="foo,uncleFoo"
Call AddSubFolders(myFolder,mySubs) Call MsgBox ("Done!")
Sub AddSubFolders(targetFolder,subFolderList) Dim FSO, targetF, subF, subSubF Dim sFoldList, iC
sFoldList = Split(subFolderList, ",") Set FSO = CreateObject("Scripting.FileSystemObject") Set targetF = FSO.GetFolder(targetFolder) Set subF = targetF.SubFolders For Each subSubF in subF For iC = 0 To Ubound(sFoldList) Call FSO.CreateFolder(subSubF & "\" & sFoldList(iC)) Next Next Set subF = Nothing Set targetF = Nothing Set FSO = Nothing End Sub
Dim myFolder,mySubs
myFolder=“C:\folder\subfolder” mySubs=“foo,uncleFoo”
调用AddSubFolders(myFolder,mySubs) 调用MsgBox(“完成!”)
子添加子文件夹(目标文件夹,子文件夹列表) Dim FSO、目标基金、次级基金、次级基金 Dim sFoldList,iC
sfollist=Split(子文件夹列表“,”) 设置FSO=CreateObject(“Scripting.FileSystemObject”) 设置targetF=FSO.GetFolder(targetFolder) Set subF=targetF.SubFolders 对于subF中的每个subF 对于iC=0到Ubound(sfolList) 调用FSO.CreateFolder(subSubF&“\”&sfollist(iC)) 下一个 下一个 Set subF=无 Set targetF=无 设置FSO=无
End Sub
创建一个文件并将其命名为“runme.vbs”,复制上面的粘贴代码,将“myFolder”的值更改为实际目标文件夹的名称,将“myubs”的值更改为要添加为子文件夹的文件夹名称的逗号分隔列表,然后运行它

尝试此操作,查看输出并删除
echo
,如果可以:

@echo off & setlocal
set /a cityfolders=10 &REM number of subfolders in each city

set /a cityfolders+=100
for /d /r %%i in (world\*) do for /d %%j in ("%%i\*") do (
    for /l %%a in (100,1,%cityfolders%) do (
        set "folder=%%a"
        setlocal enabledelayedexpansion
        set "folder=%%~j\subfolder!folder:~-2!"
        echo md "!folder!"
        endlocal
    )
)

这是批处理文件格式吗?我的意思是,我应该自定义并将您的代码保存到像sample.bat这样的txt文件中,然后运行吗?或谢谢,BRaye,只需将复制粘贴到txt并运行即可。不过,不要忘记更改路径;)我让它运行,但代码分割了我现有的文件夹。例如:
我的文件夹树
变成了
我的
文件夹
。它是1个文件夹,但变成了3个文件夹。另外,在我的路径自定义过程中,我应该像
C:\world\country
那样打印它,以获得正确的级别;对吧?是“K:\”而不是“K:\”;您只需在驱动器号后加上双“\\”,即可将文件夹分开编辑:更新答案,以便更好地理解。ie第一个“\”是单人,其余是双人。如果仍然不起作用,我建议将“JTLV-8”移动到“K”驱动器的根目录下,执行文件夹添加批处理并移回原位。由于在同一驱动器上移动,将在短时间内完成,但这些文件夹名称可能会“稍微”混淆批处理文件: