在批处理脚本中获取文件夹的创建日期和时间
Get creation date and time of a folder in batch script
我正在尝试获取 Windows 中特定文件夹的创建日期和时间。
基于此,我尝试了以下方法:
@echo off
set path_of_folder="C:\folderA\folderB\"
if exist %path_of_folder% (
echo Path exists.
for /f "skip=5 tokens=1,2 delims= " %%a in ('dir /a-d /tc %path_of_folder%') do set "dt=%%a"
echo Created on: %%a, %%b
)
)
else (
echo Path does not exist.
)
pause
我在哪里得到这个输出:
Path exists.
Created on: 05/07/2017, 17:42
Created on: 05/07/2017, 17:42
Created on: 05/07/2017, 17:42
Created on: 05/07/2017, 17:42
Created on: 4, File(s)
Created on: 0, Dir(s)
我确信它显示了每个文件的创建日期(我的例子是 4)在folderB
.
我正在寻找保存创建日期和时间的方法仅为顶级文件夹 folderB
;任何人都可以 suggest/show 如何做到这一点,而不是得到所有其他创作 date/times 吗?
请注意,在随附的 link 中给出的答案中,echo Created on: %%a, %%b
命令后有一个 exit /b 0
,我无法将其添加到我的脚本中,因为还有其他几个命令我想在 之后执行 我得到系统日期和时间。
@ECHO OFF
SETLOCAL
set "path_of_folder=C:\sql2016\mssql13.sqlexpress03"
if exist "%path_of_folder%" (
echo Path exists.
for /f "skip=5 tokens=1,2,4 delims= " %%a in (
'dir /ad /tc "%path_of_folder%\."') do IF "%%c"=="." (
set "dt=%%a"
echo Created on: %%a, %%b
)
) else (
echo Path does not exist.
)
GOTO :EOF
我使用了不同的目标目录,因为我从提示中 运行,所以我已经替换了 pause
。
请注意,包含 path
的变量现在没有结束 \
,也没有引用。这有助于进行修改,但意味着在需要时,对该变量的引用需要 "quoted".
只需在%%c
中选取目录的名称部分。因此,您需要 目录 的列表,因此 /ad
。感兴趣的目录名称是 .
,因此只有在找到的目录名称是 "."
时才执行分配和报告
skip=5
是多余的,如果您愿意,可以将其删除。 if
过滤器确保报告 .
目录。
检查 dirtimejs.bat - 它可以独立于控制面板设置打印目录时间:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set "path_of_folder=C:\folderA\folderB"
for /f "tokens=1* delims=:" %%a in ('dirtimejs.bat "%path_of_folder%" ^| find "Created :"') do (
echo %%a
)
我正在尝试获取 Windows 中特定文件夹的创建日期和时间。
基于此
@echo off
set path_of_folder="C:\folderA\folderB\"
if exist %path_of_folder% (
echo Path exists.
for /f "skip=5 tokens=1,2 delims= " %%a in ('dir /a-d /tc %path_of_folder%') do set "dt=%%a"
echo Created on: %%a, %%b
)
)
else (
echo Path does not exist.
)
pause
我在哪里得到这个输出:
Path exists.
Created on: 05/07/2017, 17:42
Created on: 05/07/2017, 17:42
Created on: 05/07/2017, 17:42
Created on: 05/07/2017, 17:42
Created on: 4, File(s)
Created on: 0, Dir(s)
我确信它显示了每个文件的创建日期(我的例子是 4)在folderB
.
我正在寻找保存创建日期和时间的方法仅为顶级文件夹 folderB
;任何人都可以 suggest/show 如何做到这一点,而不是得到所有其他创作 date/times 吗?
请注意,在随附的 link 中给出的答案中,echo Created on: %%a, %%b
命令后有一个 exit /b 0
,我无法将其添加到我的脚本中,因为还有其他几个命令我想在 之后执行 我得到系统日期和时间。
@ECHO OFF
SETLOCAL
set "path_of_folder=C:\sql2016\mssql13.sqlexpress03"
if exist "%path_of_folder%" (
echo Path exists.
for /f "skip=5 tokens=1,2,4 delims= " %%a in (
'dir /ad /tc "%path_of_folder%\."') do IF "%%c"=="." (
set "dt=%%a"
echo Created on: %%a, %%b
)
) else (
echo Path does not exist.
)
GOTO :EOF
我使用了不同的目标目录,因为我从提示中 运行,所以我已经替换了 pause
。
请注意,包含 path
的变量现在没有结束 \
,也没有引用。这有助于进行修改,但意味着在需要时,对该变量的引用需要 "quoted".
只需在%%c
中选取目录的名称部分。因此,您需要 目录 的列表,因此 /ad
。感兴趣的目录名称是 .
,因此只有在找到的目录名称是 "."
skip=5
是多余的,如果您愿意,可以将其删除。 if
过滤器确保报告 .
目录。
检查 dirtimejs.bat - 它可以独立于控制面板设置打印目录时间:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set "path_of_folder=C:\folderA\folderB"
for /f "tokens=1* delims=:" %%a in ('dirtimejs.bat "%path_of_folder%" ^| find "Created :"') do (
echo %%a
)