0

我有一个这样的文件夹结构:

世界
    国家
        城市1
        城市2
        城市3
        ...

因为我的工作,我需要在每个城市下创建许多相同的子文件夹。我搜索了谷歌但无法理解代码,因为我对 dos 环境一无所知。视觉上我需要:

世界
    国家
        城市1
            子文件夹01
            子文件夹02
            子文件夹03
            ...
        城市2
            子文件夹01
            子文件夹02
            子文件夹03
            ...
        城市3
            子文件夹01
            子文件夹02
            子文件夹03
        ...

如何使用 Windows 7 命令自动实现一次?

抱歉,我无法写出“我试过了,但是……”之类的东西,因为我什至什么都试过。谢谢

BR

更新

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

4

2 回答 2

1
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
创建一个文件并将其命名,例如“runme.vbs”,复制粘贴上面的代码,将“myFolder”的值更改为实际目标文件夹的名称,将“mySubs”的值更改为逗号分隔的文件夹名称列表喜欢添加为子文件夹,然后运行它

于 2013-04-30T13:12:18.093 回答
0

试试这个,看看输出,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
    )
)
于 2013-04-30T18:52:05.470 回答