在一行中将文件创建日期写入文本文件

Write file creation date to a text file, in a single line

这可能很简单,但它让我发疯(已经花了整整 2 个小时!我已经尝试了很多东西!)。

我只需要一个单行 bat 脚本 来读取给定文件的创建日期并将其写入文本文件。

我试过使用 dir /T:C 命令,但它写入的信息太多了。例如:

dir /T:C "E:\TEST\test.mkv" >"E:\TEST\test.txt"

text.txt 文件中写入:

Le volume dans le lecteur E s'appelle xxxxxxxx
Le numéro de série du volume est xxxxxxxx

Répertoire de E:\TEST

11/03/2018  20:45     1 947 028 131 test.mkv
               1 fichier(s)    1 947 028 131 octets
               0 Rép(s)  64 368 631 808 octets libres

我只对“11/03/2018 20:45”部分感兴趣。

编辑:如果我们可以添加一些代码以仅保留输出的第 6 行并将其写入同一文本文件,我也可以接受以前的 dir /T:C 语法。

使用这个:

@For /f "Tokens=1,2 Delims= " %%A in ('dir /T:C "E:\TEST\test.mkv" ^| Find /I "Test.mkv"') Do Echo %%A %%B >output.txt

这是我的建议,从技术上讲,它在批处理文件中只使用和不使用一行,并使用 VBScript。

<!-- :
@("%__AppDir__%cscript.exe" //NoLogo "%~f0?.wsf">"E:\TEST\test.txt")&Exit /B
-->
<Job><Script Language="VBScript">
Set o=CreateObject("Scripting.FilesystemObject")
Set f=o.GetFile("E:\TEST\test.mkv")
s=Left(f.DateCreated,Len(f.DateCreated)-3)
</Script></Job>

为了切题,这里有一些单行批处理文件示例。

此方法利用 powershell.exe:

@"%__AppDir__%WindowsPowerShell\v1.0\powershell.exe" -NoP "'{0:dd/MM/yyy}' -F(Get-Date(GI 'E:\TEST\test.mkv').CreationTime)">"E:\TEST\test.txt"

而这个使用 WMIC.exe:

@For /F %%I In ('WMIC DataFile Where Name^="E:\TEST\test.mkv" Get CreationDate 2^>NUL^|Find "."')Do @Set "d=%%~nI"&(Call Echo %%d:~6,2%%/%%d:~4,2%%/%%d:~,4%% %%d:~8,2%%:%%d:~10,2%%)>"E:\TEST\test.txt"