在一行中将文件创建日期写入文本文件
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"
这可能很简单,但它让我发疯(已经花了整整 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"