使用 bat 批量創建帶有項目前綴名的文件夾結構

在項目管理中,經常需要為每個新項目創建一套標準化的文件夾結構。如文檔中所述,用戶希望為每個項目(如"Project 1"、“Project 2”)創建以下結構的文件夾:

project-1_export\project-1_DWG  
project-1_export\project-1_IMAGES 
project-1_export\project-1_PDF 
project-1_export\project-1_ZIP 
project-1_LIBRARY 
project-1_SUPPORT DOCUMENTS\project-1_Scans 
project-1_SUPPORT DOCUMENTS\project-1_PDF\project-1_Client 
project-1_SUPPORT DOCUMENTS\project-1_PDF\project-1_Others 

解決方案分析

方法一:簡單批處理腳本

@echo off
if "%~1" == "" goto :help
md "project-%~1_export\project-%~1_DWG"  
md "project-%~1_export\project-%~1_IMAGES" 
md "project-%~1_export\project-%~1_PDF" 
md "project-%~1_export\project-%~1_ZIP" 
md "project-%~1_LIBRARY" 
md "project-%~1_SUPPORT DOCUMENTS\project-%~1_Scans" 
md "project-%~1_SUPPORT DOCUMENTS\project-%~1_PDF\project-%~1_Client" 
md "project-%~1_SUPPORT DOCUMENTS\project-%~1_PDF\project-%~1_Others" 
goto :eof
:help
echo 使用方法:輸入項目編號創建文件夾結構,例如:
echo %~n0 1

中文注釋說明:

  • @echo off - 關閉命令回顯,使輸出更簡潔
  • if "%~1" == "" goto :help - 如果沒有傳入參數,跳轉到幫助部分
  • md - 創建目錄命令
  • %~1 - 第一個傳入的參數(項目編號)
  • :help - 幫助標簽
  • %~n0 - 當前批處理文件名

使用方法:

  1. 將腳本保存為CreateProject.bat
  2. 在命令行中執行:CreateProject 1234(1234為項目編號)

方法二:高級批處理腳本

@ECHO OFF
@setlocal EnableDelayedExpansionRem | 配置部分
Set "MainDir=C:\Projects"  Rem | 設置主目錄路徑
Set "MustContain=project"  Rem | 設置必須包含的關鍵字Rem | 獲取每個項目文件夾
for /f "tokens=*" %%A in ('dir "!MainDir!\" /b /a:d') do (Set "MainFolder=%%~nA"Rem | 檢查當前文件夾是否包含項目關鍵字for /f "tokens=*" %%B in ('echo !MainFolder!^| find /I "!MustContain!"') do (Set "BaseFolderName=%%~nB"Rem | 獲取項目目錄下的每個文件夾for /f "tokens=*" %%C in ('dir "!MainDir!\!BaseFolderName!\*" /b /s /a:d') do (Set "FolderName=%%C"Rem | 檢查當前文件夾是否已有項目前綴for /f "tokens=*" %%D in ('echo !FolderName!^| find /V "!BaseFolderName!_"') do (Echo %%D >> DataFile.temp  Rem | 將結果保存到臨時文件)))
)Rem | 檢查臨時文件是否存在
If exist "%~dp0DataFile.temp" (Rem | 反轉文件夾樹結構for /F "tokens=*" %%A in (DataFile.temp) do (set /A I=!I! + 1set LINE!I!=%%A)Del %~dp0DataFile.tempfor /L %%A in (!I!,-1,1) do (echo !LINE%%A! >> DataFile.temp)Rem | 讀取臨時文件并處理路徑for /F "tokens=*" %%A in (DataFile.temp) do (Set "FolderName=%%~nA"Set "String=%%A"Set "String=!String:%MainDir%\=!"Rem | 獲取項目編號for /F "tokens=1,2* delims=\" %%B in ('Echo !String!') do (Set "BaseFolderName=%%B")Rem | 重命名文件夾CD "%%A\.."rename "!FolderName!" "!BaseFolderName!_!FolderName!")Del %~dp0DataFile.temp
)
goto :EOF

文件夾結構關系圖

Project-1
project-1_export
project-1_LIBRARY
project-1_SUPPORT DOCUMENTS
project-1_DWG
project-1_IMAGES
project-1_PDF
project-1_ZIP
project-1_Scans
project-1_PDF
project-1_Client
project-1_Others

實現原理對比

特性簡單腳本高級腳本
創建新結構???
重命名現有結構???
參數化輸入命令行參數配置文件
處理子文件夾手動指定自動遞歸
靈活性
復雜度簡單復雜

實際應用建議

  1. 新建項目結構:使用簡單腳本方法,每次為新項目執行一次
  2. 批量重命名現有結構:使用高級腳本方法,自動化處理已有文件夾
  3. 擴展功能
    • 添加日志記錄功能
    • 增加錯誤處理機制
    • 支持從配置文件讀取結構定義

單詞、短語表

單詞(短語)音標詞性詞根/詞綴釋義搭配例子
batch file/b?t? fa?l/n.batch(批量)+file(文件)批處理文件create batch fileI created a batch file to automate the process.
prefix/?pri?f?ks/n.pre-(前)+fix(固定)前綴variable prefixThe folders have a project name prefix.
subfolder/?s?b?fo?ld?r/n.sub-(下)+folder(文件夾)子文件夾create subfolderHow to create subfolders automatically?
token/?to?k?n/n.-標記tokens=*Use “tokens=*” to get the whole line.
delayed expansion/d??le?d ?k?sp?n??n/n.delay(延遲)+expand(擴展)延遲擴展enable delayed expansionUse delayed expansion to handle variables in loops.
recursive/r??k??rs?v/adj.re-(再)+curs(跑)遞歸的recursive folder scanThe script performs a recursive scan of all subfolders.
parameter/p??r?m?t?r/n.para-(旁)+meter(測量)參數command line parameterPass the project ID as a command line parameter.

通過本文的詳細解析和代碼示例,讀者可以全面了解如何使用批處理腳本創建具有項目前綴的文件夾結構。無論是簡單的創建需求還是復雜的批量重命名場景,都能找到合適的解決方案。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91409.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91409.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91409.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python類中魔術方法(Magic Methods)完全指南:從入門到精通

文章目錄Python類中魔術方法(Magic Methods)完全指南:從入門到精通一、魔術方法基礎1. 什么是魔術方法?2. 魔術方法的特點二、常用魔術方法分類詳解1. 對象創建與初始化2. 對象表示與字符串轉換3. 比較運算符重載4. 算術運算符重載5. 容器類型模擬6. 上下…

H3CNE綜合實驗之五角星

H3CNE綜合實驗之五角星 實驗拓撲圖交換機地址規劃表:SW6G1/0/1Vlan100:10.1.3.2/24G1/0/2Vlan90:10.1.4.2/24G1/0/3Vlan50:10.1.5.1/24G1/0/4Vlan60:10.1.6.1/24SW7G1/0/1Vlan50:10.1.5.2/24G1/0/2Vlan30:192.168.3.1/24G1/0/6Vlan70:10.1.1.2/24G1/0/3-…

Android EventBus使用方法與底層原理詳解

EventBus 是什么? EventBus 是一個基于發布/訂閱(Publish/Subscribe) 模式的開源庫(主要由 greenrobot 開發維護)。它的核心目的是簡化 Android 應用中不同組件(如 Activity, Fragment, Service, Thread 等…

初等數論簡明教程

初等數論簡明教程 本文給出初等數論中的一些重要的定理與例題,證明風格采用 整除線法 與 命題節點法。 整除線法 指推理的第 nnn 步左邊的字符可由前面左邊的字符得到,右邊的字符可由前面右邊的字符得到,整除線變成了推理線,既少…

Spring之核心容器(IoC,DI,基本操作)詳解

Spring之核心容器IoC/DI/基本操作詳解一、核心概念:IoC與DI的本質1.1 IoC(Inversion of Control,控制反轉)傳統開發模式(無IoC)IoC模式(Spring容器管理)1.2 DI(Dependenc…

【論文閱讀】基于注意力機制的冥想腦電分類識別研究(2025)

基于注意力機制的冥想腦電分類識別研究💡 Meta DataTitle基于注意力機制的冥想腦電分類識別研究Authors周梓涵Pub. date2025📜 Research Background & Objective背景: 現代生活壓力導致心理問題日益突出,冥想作為一種有效的心…

GitHub 上 Star 數量前 8 的開源 Web 應用項目

原文鏈接:https://www.nocobase.com/cn/blog/github-open-source-web-applications。 近期,我們發布了多篇「Top GitHub Star 開源項目推薦」系列文章,受到了大量點贊與收藏,很多開發者留言表示希望能看到更多不同領域的開源工具推…

FATFS文件系統原理及其移植詳解

一、FATFS簡介 FATFS 是一個完全免費開源的 FAT/exFAT 文件系統模塊,專門為小型的嵌入式系統而設計。它完全用標準 C 語言(ANSI C C89)編寫,所以具有良好的硬件平臺獨立性,只需做簡單的修改就可以移植到 8051、PIC、A…

KubeRay 和 Ray

KubeRay 和 Ray 不是替代關系,而是互補的協作關系。兩者在分布式計算生態中扮演不同角色,共同構成完整的云原生 AI 解決方案。以下是具體分析:🔧 1. 核心定位差異Ray 是分布式計算引擎,提供底層 API(如 ray…

破解輪胎倉儲高密度與柔性管理難題

輪胎作為特殊的大件異形工業品,其倉儲管理長期面臨多重挑戰:規格型號繁雜導致SKU數量龐大,重型載重對貨架承重提出極高要求,橡膠材質對防壓變形、避光防老化等存儲環境存在嚴苛標準。傳統平置堆垛或普通貨架方案不僅空間利用率不足…

EVA series系列(上)

目錄 一、EVA 1、概述 2、方法 二、EVA-02 1、概述 2、架構 三、EVA-CLIP 1、概述 2、方法 四、EMU 1、概述 2、架構 3、訓練細節 4、評估 一、EVA 1、概述 為探尋大規模表征學習任務的MIM預訓練任務在ViT基礎上擴展到1B參數量規模,結合10M級別&am…

ABP VNext + EF Core 二級緩存:提升查詢性能

ABP VNext EF Core 二級緩存:提升查詢性能 🚀 📚 目錄ABP VNext EF Core 二級緩存:提升查詢性能 🚀引言 🚀一、環境與依賴 🛠?二、集成步驟 ??2.1 安裝 NuGet 包2.2 注冊緩存服務與攔截器2…

3.1k star!推薦一款開源基于AI實現的瀏覽器自動化插件工具 !

大家好!今天,我要給大家介紹一款超實用的開源工具——Chrome MCP Server!這款工具不僅能大幅提升我們的工作效率,還能讓AI助手(如Claude)直接操控瀏覽器,實現自動化操作、內容分析等強大功能。 …

關于 OpenAI 的反思

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎?訂閱我們的簡報,深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同,從行業內部的深度分析和實用指南中受益。不要錯過這個機會,成為AI領…

Python爬蟲庫性能與選型對比

Python常用爬蟲庫的優勢對比。這是一個非常實用的問題,很多Python開發者都會面臨選擇合適爬蟲工具的困惑。我根據網絡很多搜索結果,整理出這些信息,為用戶提供一個全面且清晰的對比分析。以下是Python中常用爬蟲庫的核心優勢對比及選型建議&a…

NAT作業

拓撲圖 實驗要求 1.按照圖示配置IP地址,公網地址100.1.1.1/24..較網“說過?,使“掩入到互聯網,私服究的不到公的,使陽接入無三。.私網A通過NAPT,使R1接入到互聯網,私網B通過EASY,IP,使R3接入到互聯網實驗思…

JAVA進階--JVM

一.JVM的概述java語言有跨平臺特點, 寫一次java程序,可以在不同的平臺上運行.(JVM虛擬機的作用)前提條件: 在不同的平臺上安裝不同的虛擬機(虛擬機就是一個翻譯).java--->.class--->不同的虛擬機--->機器碼1.jvm作用:負責將字節碼翻譯為機器碼, 管理運行時內存2.jvm的…

基于Alpine構建MySQL鏡像

文章目錄基于Alpine構建MySQL鏡像一、基礎鏡像選擇與初始化1. 基礎鏡像選型2. 系統初始化二、核心配置構建1. 目錄與權限配置2. 配置文件優化三、安全增強配置1. 密碼策略強化2. 非root運行四、數據持久化與啟動配置1. 數據卷聲明2. 入口腳本優化五、完整Dockerfile示例六、關鍵…

Alamofire 網絡請求全流解析,通俗易懂

Alamofire 網絡請求全流程解析:從發起請求到處理響應 一、請求發起階段:準備你的"快遞" 1. 你告訴Alamofire要發什么"快遞" // 就像告訴快遞員:"我要寄一個包裹給https://api.example.com" AF.request("h…

鏈路聚合技術

鏈路聚合技術 鏈路聚合概述及應用場景 概述 鏈路聚合是把多條物理鏈路聚合在一起,形成一條邏輯鏈路。應用在交換機、路由器、服務器間鏈路,注意了,主機上面不能用鏈路聚合技術分為三層鏈路聚合和二層鏈路聚合鏈路聚合的作用 增加鏈路帶寬提供…