我创建了这个 .bat 文件并将其添加到我的上下文菜单中,以帮助我在开始新项目时快速创建一组具有预定义名称的文件夹,这节省了我手动创建所有这些文件夹的时间
@ECHO OFF
md 01_Project-Brief 02_Project-Assets 03_Project-Research 04_Project-Snapshots 05_Project-Process 06_Project-Mockups
我的过程是这样的,每当我想开始一个新项目时,我首先创建一个新文件夹并给它命名项目名称,例如“East Oasis”,然后打开该文件夹并在其中从上下文菜单运行批处理文件,它会创建项目文件夹,
我希望创建的项目文件夹的名称包含项目(父文件夹)的名称,而不是只有静态名称
例子:
任何帮助都值得赞赏。并提前致谢。
答案1
REM get the name of the current folder
for %%a in (.) do set "curpath=%%~nxa"
REM now make the directories (just one to show the idea)
md "06_%curpath%-Mockups"
[...]
答案2
附注:最好抛弃 Batch,使用更现代的方法,其中编写的代码实际上有意义,例如 Python、NodeJS 或 PHP。
我主要出于习惯坚持使用 PHP 来自动化这些事情。
<?php
// List directories in the current dir.
$dirs = glob("*", GLOB_ONLYDIR);
// Find and replace variables.
$find = "_Project";
$replace = "_East Oasis";
// Loop through each directory and replace the name.
foreach ($dirs as $dir) {
// Skip dir if doesn't contain the $find term.
if (!str_contains($dir, $find))
continue;
// Replace $find with $replace in the string $dir.
$new_name = str_replace($find, $replace, $dir);
// Rename the old name $dir to the $new_name.
rename($dir, $new_name);
}
?>
答案3
@echo off && Setlocal EnableDelayedExpansion
cd /d "%~dp0" && set "_cd=%cd%"
set "_cd=%_cd:\=" & set /A i+=1 & set "_cd!_i!=%"
set "_folder=Brief,Assets,Research,Snapshots,Process,Mockups"
for %%i in (%_folder%)do set /a "_cnt+=1+0" && =;(
"%ComSPec%" /v:on /e /c "mkdir "0!_cnt!_!_cd!_%%~i" );=
timeout 05 | tree /a /f & endlocal