【问题标题】:mkdir x levels downmkdir x 级别下降
【发布时间】:2018-05-22 15:32:00
【问题描述】:

我有一个用于多个州的合同的文件夹,每个州的文件夹都有多个合同:

D:\Workspace\Contracts\State1\Contract1_number_date  
D:\Workspace\Contracts\State1\Contract2_number_date  
D:\Workspace\Contracts\State2\Contract1_number_date`  
etc...  

我需要为每个合同创建 3 个文件夹:

D:\Workspace\Contracts\State1\Contract1_number_date\folder1  
D:\Workspace\Contracts\State1\Contract1_number_date\folder2  
D:\Workspace\Contracts\State1\Contract1_number_date\folder3  
D:\Workspace\Contracts\State1\Contract2_number_date\folder1   
D:\Workspace\Contracts\State1\Contract2_number_date\folder2   
D:\Workspace\Contracts\State1\Contract2_number_date\folder3   
D:\Workspace\Contracts\State2\Contract1_number_date\folder1  
D:\Workspace\Contracts\State2\Contract1_number_date\folder2  
D:\Workspace\Contracts\State2\Contract1_number_date\folder3   

我发现\..\ 上升了一级,所以mkdir D:\Workspace\Contracts\..\folder1 变成了D:\Workspace\folder1,但我不知道如何下降 1 或 10 个文件夹。

【问题讨论】:

  • 输入 mkdir /? 以查找。
  • 不知怎的,我的智力无法理解这些指示。
  • 你就去做吧。你只需要下降 10 点。 md D:\Workspace\Contracts\State2\Contract1_number_date\folder2md D:\Workspace\Contracts\State2\Contract1_number_date\folder3
  • cd .. 可以上移一级,因为每个目录只能有一个父目录,但是,当您下一级时,可以有多个子目录,因此不能以相同的方式工作。
  • 现在我有 17 个州,其中大多数有 2 个合同,最多 8 个,在当前代码中再添加 2 行无济于事。这么一批就不能给所有的二阶子弟了?那么更好的方法是用excel来做呢?

标签: batch-file mkdir


【解决方案1】:

这里有一些代码使用For 循环来实现你的目标:

@Echo Off
Set "BaseDir=%~1"
Set "NumStates=%~2"
Set "NumContracts=%~3"
Set "NumFolders=%~4"

If Not Exist "%BaseDir%\" Exit/B
For %%A In (NumStates NumContracts NumFolders) Do If Not Defined %%A Exit/B

If /I Not "%CD%"=="%BaseDir%" CD /D "%BaseDir%"

For /L %%A In (1,1,%NumStates%) Do For /L %%B In (1,1,%NumContracts%
) Do For /L %%C In (1,1,%NumFolders%
) Do If Not Exist "State%%A\Contract%%B_number_date\folder%%C\" (
    MD "State%%A\Contract%%B_number_date\folder%%C")

您可以像这样从命令行运行名为 MakeDirs.cmd 的脚本:

"MakeDirs.cmd" "D:\Workspace\Contracts" 17 8 3

上面应该为8 Contracts 和17 D:\Workspace\Contracts 中的状态创建3 目录。

【讨论】:

  • 感谢您的解决方案,我相信这对于我需要将文件复制到 thouse 目录的时候很有用。但我发现这可以通过 excel 以更少的复杂性来实现。
猜你喜欢
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
  • 2013-11-30
  • 2018-09-03
  • 2017-05-13
  • 2015-11-30
相关资源
最近更新 更多