Batch file 使用bat文件创建文件夹

Batch file 使用bat文件创建文件夹,batch-file,Batch File,我需要写一个bat文件,它使用当前日期和时间作为文件夹名创建一个新文件夹。 我得出了以下结论: for /f "tokens=1-3 delims=:," %%i in ("%TIME%") do md %DATE%-%%i.%%j.%%k 这个代码有缺陷吗?有更简单/更自然的方法吗?我用这个球棒 for /F "tokens=1-4 delims=. " %%i in ('date /t') do ( set Day=%%i set Month=%%j set Year=%%k ) for

我需要写一个bat文件,它使用当前日期和时间作为文件夹名创建一个新文件夹。 我得出了以下结论:

for /f "tokens=1-3 delims=:," %%i in ("%TIME%") do md %DATE%-%%i.%%j.%%k
这个代码有缺陷吗?有更简单/更自然的方法吗?

我用这个球棒

for /F "tokens=1-4 delims=. " %%i in ('date /t') do (
set Day=%%i
set Month=%%j
set Year=%%k
)

for /F "tokens=1-4 delims=: " %%i in ('time /t') do (
set Hour=%%i
set Minute=%%j
set Second=%%k
)


md %1\%Year%-%Month%-%Day%

希望有帮助。

您可以使用子字符串和内置的%DATE%和%TIME%变量来执行此操作:

@echo OFF

:: Use date /t and time /t from the command line to get the format of your date and
:: time; change the substring below as needed.

:: This will create a timestamp like yyyy-mm-dd-hh-mm-ss.
set TIMESTAMP=%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%-%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%

@echo TIMESTAMP=%TIMESTAMP%

:: Create a new directory
md "%1\%TIMESTAMP%"

我无法使上面的许多功能正常工作,但是成功地使用了原始的posters命令

以下是我的版本:

对于/f“tokens=1-3 delims=:/”%i in(“%DATE%”)do set DATESTAMP=%i.%j.%k
@echo目录将使用以下名称创建:
@回显备份。%DATESTAMP%
md备份。%DATESTAMP%
@已创建回显目录,正在进行文件复制。。。
@echo请确保电脑没有打开电子邮件或任何文档。
停顿
cd备份。%DATESTAMP%
md“共享文档”
xcopy“c:\documents and settings\all users\documents\documents”“Shared documents”/E/c/I/H/Q
@回音文件完成。
etc:)

您是否曾尝试使用此代码将日期和时间保存为new_folder_maker.bat来创建一个新的文件夹生成器

:start
@echo off
md new_folder_%date%_%time%
exit
这是我的解决方案(修改了lopkiju的)。它使用日期戳创建文件夹。如果同名文件夹已存在,请向其追加一个整数以使其唯一。将其放入.bat文件中,并将路径传递到父文件夹。
在Windows 7 Home Premium x64中测试

REM Create a folder using the current date.  If such a folder already exists, append a number to make it unique.
@ECHO OFF
for /F "tokens=2-5 delims=/ " %%i in ('date /t') do (
set Day=%%j
set Month=%%i
set Year=%%k
)

set Path=%~1\%Year%-%Month%-%Day%
set /a inx=2

:LOOP
IF NOT EXIST "%Path%" GOTO CREATE
set Path=%~1\%Year%-%Month%-%Day% (%inx%)
set /a inx+=1
if %inx% gtr 9 goto :END REM Eh, giving up.
goto LOOP
:END

:CREATE
md "%Path%"
:END
您可以利用
date.exe
的格式说明符:

for /f "delims=" %%a in ('date.exe +%%Y-%%m-%%d.%%H-%%M') do @set dd=%%a
md %dd%
此解决方案对于具有本地化版本Windows的用户尤其重要

for
循环只运行一次,但这是必需的,因为并没有更简单的方法可以使用从命令输出中获取的值来分配变量


使用
date--help
查看格式说明符的完整列表。

这对我来说非常有效

dkdir foldername

cd foldername

dkdir %date% %time% 

cls

简单的%time%不起作用的原因是它被:分隔,这在批处理脚本中是不允许的。但这个应该很好:

它对我很有效

Rem Get Day,Mth & Year from %Date%
set Day=%Date:~0,2%
set Mth=%Date:~3,2%
set Yr=%Date:~6,4%
REM Get Hour and Min from %Time%
set Hour=%Time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set Min=%Time:~3,2%

mkdir %date%-%hour%.%min%

请注意,如果命令扩展被禁用,time/t将不起作用,但我想这并不会真正困扰您。(请参阅以供参考)我对bat脚本不太了解,我只是想让bat创建一个包含当前日期的文件夹,但感谢您提供的信息。第二个for循环不会在我的计算机上显示秒数,因为我的时间/t输出仅为8:12(没有秒)。顺便说一句,这会在此处创建两个目录。使用引号(md“%DATE%-%%i.%j.%k”)会更好。这正是我想要的,这种方法对我来说更自然非常有用!不过,应该注意的是,上述代码的用法假设了一个参数:新文件夹的目标位置。如果按原样使用,则无论从哪个驱动器启动,在其根目录中都会有一个带时间戳的文件夹?显然它不能工作,因为
%time%
包含冒号,而在一些次要国家/地区,日期包含斜杠,两者在路径名称中都无效。事实上,这取决于时间和日期设置。请提供一个资源逐步解释此问题?我在命令提示符中使用了帮助,这有点难以理解