如何在 Windows 中自动创建命名文件夹列表?

如何在 Windows 中自动创建命名文件夹列表?

我正在学习一门在线课程,它有数百个子讲座。我需要将每个讲座的源代码下载到相应的子文件夹中。有超过 120 个讲座,逐个创建子文件夹是一个艰苦的过程。

这是我当前的文件夹结构:

在此处输入图片描述

有没有办法可以通过批处理文件或类似文件一次创建所有这些子文件夹并为其指定正确的名称。

答案1

如何使用我的命名方案一次创建所有这些子文件夹?

如果我要在特定目录(例如 C:\Dropbox\Development)中创建子文件夹,我是否需要先 cd 到该目录?假设我正在使用 cmd shell?

要在特定目录(不是当前目录)中创建子文件夹(子目录),您可以执行以下操作之一:

  • cd C:\Dropbox\Development首先或
  • 将命令更改md Lec-%%imd C:\Dropbox\Development\Lec-%%i

笔记:

  • mkdir是其同义词md,可以代替其使用。

下面我展示了两种替代方法,第一种是从cmdshell(命令行),第二种是使用批处理文件。

作为奖励(尽管原始问题中没有要求)还有一个bashshell 替代方案。


cmdshell 中:

cd C:\Dropbox\Development
for /l %i in (9,1,120) do md Lec-%i

或者

for /l %i in (9,1,120) do md C:\Dropbox\Development\Lec-%i

从批处理文件:

@echo off
cd C:\Dropbox\Development
for /l %%i in (9,1,120) do md Lec-%%i

或者

@echo off
for /l %%i in (9,1,120) do md C:\Dropbox\Development\Lec-%%i

笔记:

  • 9是起始编号。如有必要,请更改。
  • 1是步骤。请勿更改此项。
  • 120结束编号。如有必要,请更改为所需的最后一个目录的编号。
  • 要在另一个目录中创建文件,您可以

    • cd C:\Dropbox\Development\Lec-%%i首先或
    • 将命令更改mdmd C:\Dropbox\Development\Lec-%%i

有没有办法从 Mac 终端对 Mac OSX 做类似的事情?

bashshell 中:

for i in {9..120}; do mkdir Lec-$i; done; 

或者(更便携的版本)

for i in `seq 9 120`; do mkdir Lec-$i; done;

进一步阅读

答案2

对于有限数量的文件夹,还有另一种简单的方法。可能在这里有用,或者对其他人有用。

在 Windows 中,我们可以通过创建文件夹“lec(1)”来创建编号文件夹名称,然后根据需要复制粘贴该文件夹,如果我们粘贴 10 次,将会有 11 个文件夹,名称分别为“lect(1)”至“lec(10) - Copy”

这里唯一的技巧是第一个文件夹必须包含括号 (n),其中 n 是编号开始的数字。

Windows 在粘贴文件夹名称“lec(1) - Copy”处包含“-copy”:(

如果您不喜欢它,只需全选并重命名第一个 lec(1) -> lec-(1) 或任何名称。

所有文件夹的名称都将被调整并且“-复制”将被删除;)

  • Ctrl+C——复制
  • Ctrl+V——粘贴
  • F2——重命名
  • 输入 - 完成重命名。
  • ESC-取消重命名。
  • Ctrl+A 或 Ctrl+UP 选择文件夹。

在此处输入图片描述

答案3

这不会比针对您的特定场景的脚本更好,但是当您的文件夹名称不相关时了解这一点会很好:您可以通过用空格分隔从命令行创建多个目录:

C:\temp\animals>dir
 Volume in drive C is Windows
 Volume Serial Number is 82CB-BB0F

 Directory of C:\temp\animals

11/16/2015  03:55 PM    <DIR>          .
11/16/2015  03:55 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  1,636,846,243,840 bytes free

C:\temp\animals>mkdir cats dogs penguins

C:\temp\animals>dir
 Volume in drive C is Windows
 Volume Serial Number is 82CB-BB0F

 Directory of C:\temp\animals

11/16/2015  03:55 PM    <DIR>          .
11/16/2015  03:55 PM    <DIR>          ..
11/16/2015  03:55 PM    <DIR>          cats
11/16/2015  03:55 PM    <DIR>          dogs
11/16/2015  03:55 PM    <DIR>          penguins
               0 File(s)              0 bytes
               5 Dir(s)  1,636,846,178,304 bytes free

答案4

您可以在文件所在的文件夹中运行此批处理文件。每个文件都将移动到同名文件夹中。

for /f "delims=" %%a in ('dir /b') do (
if not "%%~fa"=="%~f0" (
md "%%~na" 2>nul
if exist "%%a" move "%%~na.*" "%%~na"
)
)

我使用它时会附带下面的警告,以避免意外使用。

@echo off
echo.
set sure=
set /p sure=you want to put each file in this folder into their own folders? 
if /i "%sure%"=="" exit
if /i "%sure:~0,1%"=="n" exit
if /i not "%sure:~0,1%"=="y" (exit) else (echo.&echo are you sure? Close window to cancel or..)
echo.&pause 
for /f "delims=" %%a in ('dir /b') do (
if not "%%~fa"=="%~f0" (
md "%%~na" 2>nul
if exist "%%a" move "%%~na.*" "%%~na"
)
)

相关内容