我需要一个脚本来创建文件夹和子文件夹[关闭]

Posted

技术标签:

【中文标题】我需要一个脚本来创建文件夹和子文件夹[关闭]【英文标题】:I need a script to create a folder and sub folders [closed] 【发布时间】:2020-09-25 00:06:56 【问题描述】:

我需要一个脚本,该脚本将创建一个名称类似于 request #...... 的主文件夹,并且用户必须输入数字,以及始终具有相同名称的子文件夹。 谢谢。

【问题讨论】:

mkdir "request #\same name" @Stephan。我想你忘记了问题的一部分。有一个数字需要用户输入。也许会有一个弹出窗口询问“哪个请求编号?”并将其插入到文件夹的名称中。 【参考方案1】:

我相信,您正在寻找以下代码。

set /p- 提示来自用户的值。

md- 创建文件夹

@echo off
set /p number="Enter number: "

::main folder
md request#%number%

::sub folders
md request#%number%\request#%number%_SubFolder1
md request#%number%\request#%number%_SubFolder2
md request#%number%\request#%number%_SubFolder3
md request#%number%\request#%number%_SubFolder4

您可以使用 for 循环创建 n 个子文件夹。以下代码将根据您输入的值创建父目录和 n 个子文件夹。

@echo off
set /p number="Enter number: "
::main folder
md request#%number%
::sub folder
for /L %%a in (1,1,%number%) do md request#%number%\request#%number%_SubFolder%%a

如果您输入值 4,则会创建以下文件夹结构。

-request#4
 -request#4_SubFolder1
 -request#4_SubFolder2
 -request#4_SubFolder3
 -request#4_SubFolder4

编辑: 下面的代码将触发 GUI 输入框,以获取用户输入。将间接调用 VBS 脚本来显示输入框。将在父文件夹下创建子文件夹“iAmSubFolder”。如果您想要其他名称,请更改此名称。

@echo off
::input box
echo wscript.echo inputbox("Please enter the number","This is title bar") >"%temp%\input.vbs"
for /f "tokens=* delims=" %%a in ('cscript //nologo "%temp%\input.vbs"') do set number=%%a

::Just to make clear, assigning folder names to variables
set parentFolder= request#%number%
set subFolder= %parentFolder%\iAmSubFolder
::to remove any existing folder
::creating parent folder, if not exists
if not exist %parentFolder% md %parentFolder%
::create SubFolderWithSameName, if not exists
if not exist %subFolder% md %subFolder%

带有 vbs 扩展名的最终脚本:

dim filesys, newfolder, newfolderpath, number
number=inputbox("Please enter the number","This is title bar")
'update the folder path in the below line
newfolderpath="C:\Users\310294\Desktop\test\"
newfolderpath = newfolderpath + "request#" +number
set filesys=CreateObject("Scripting.FileSystemObject")
If Not filesys.FolderExists(newfolderpath) Then
Set newfolder = filesys.CreateFolder(newfolderpath)
Set newfolder = filesys.CreateFolder(newfolderpath+ "\Photos")
Set newfolder = filesys.CreateFolder(newfolderpath+ "\Videos")
msgbox "Folders are created!"
End If

【讨论】:

感谢您的回答。它适用于第一部分(主文件夹)。关于子文件夹,它们将始终具有相同的名称且没有编号,但必须在同一主文件夹下创建 ofcours。此外,输入数字的问题出现在 cmd 窗口中。还有其他方法可以弹出窗口吗?谢谢 看看这个。 code @echo off ::输入框 echo wscript.echo inputbox("请输入数字","请求文件夹") >"%temp%\input.vbs" for /f "tokens=* delims=" %% a in ('cscript //nologo "%temp%\input.vbs"') do set number=%%a ::为了清楚起见,将文件夹名称分配给变量 set parentFolder= request#%number% set subFolder= % parentFolder%\iAmSubFolder ::删除任何现有文件夹 ::创建父文件夹,如果不存在则不存在 %parentFolder% md %parentFolder% ::SubFolderWithSameName,如果不存在则不存在 %subFolder% md %subFolder% pause @987654327 @ 代码很混乱,因为它在一个块中。无论如何,我试图把它放在一个 .bat 文件中运行它,但是除了一个来了又消失的盒子,什么也没发生。 我无法正确格式化它。对于那个很抱歉。在原始响应中添加了更新的代码。检查编辑部分 这样更容易阅读。很抱歉,当我指的是具有相同名称的子文件夹时,我的意思是我将像在此示例中那样创建它:主文件夹:请求# 1233 子文件夹:图片、采购订单、发票、报告。子文件夹永远不会改变。

以上是关于我需要一个脚本来创建文件夹和子文件夹[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在文件夹和子文件夹中执行批处理文件执行脚本?

如何使用 PowerShell 删除空子文件夹?

什么是父进程和子进程?

使用systemd在系统关闭时运行脚本

Linux中shell和子shell一点点理解

使用Google Apps脚本查找所有文件夹(和子文件夹)中的文档/幻灯片/表格