Записать дату создания файла в текстовый файл в одну строку - PullRequest
2 голосов
/ 11 января 2020

Это может быть легко, но это сводит меня с ума (уже целых 2 часа! Я перепробовал десятки вещей!).

Мне просто нужен однострочный скрипт для летучей мыши , который читает дату создания данного файла и записывает ее в текстовый файл.

Я пытался использовать команду 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", больше ничего ...

Заранее спасибо за помощь!

РЕДАКТИРОВАТЬ: Я мог бы также согласиться на предыдущий синтаксис dir / T: C, если бы мы могли добавить немного кода в оставьте только строку № 6 вывода и запишите ее в тот же текстовый файл. Спасибо!

Ответы [ 2 ]

1 голос
/ 11 января 2020

Вот мое предложение, которое технически использует и не использует только одну строку в пакетном файле и использует 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>

Чтобы остаться в топи c, но вот некоторые точно Примеры командных файлов.

Этот метод использует 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"
0 голосов
/ 11 января 2020

Используйте это:

@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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...