Как получить последнюю измененную дату файла на командной строке Windows?

Я использовал следующую команду для получения даты файла. Однако fileDate переменная возвращала пустое значение с тех пор, как мы переместились в другой сервер (Windows Server 2003).

FOR /f %%a in ('dir myfile.txt^|find /i " myfile.txt"') DO SET fileDate=%%a 

Там какой-либо другой более надежный путь состоит в том, чтобы получить дату файла?

19
задан Mofi 30 October 2016 в 10:21
поделиться

4 ответа

Изменение % на %% Для использования в пакетном файле для % ~ TA Syntax Enter Call / ?

for %a in (MyFile.txt) do set FileDate=%~ta
36
ответ дан 30 November 2019 в 02:11
поделиться

Это работает для меня на Vista. Некоторые вещи, чтобы попробовать:

  1. заменить Найти с полностью квалифицированным путем команды поиска. Найти - это общее имя инструмента. Существует Unix Seept, которая очень разум из встроенной находки Windows. Как это:
    для / f %% a в ('dir ^ |% windir% \ system32 \ find.exe / i "myfile.txt"') Установите filedate = %% A

  2. Осмотрите выход Команда в окне cmd.exe. Для этого вам нужно заменить %% с%.
    Для / F% A в («DIR ^ | C: \ Windows \ System32 \ find.exe / i» myfile.txt "') do filedate =% A
    , которые могут дать вам некоторые идеи.

  3. Если это отображается как пробел, то опять же, в командной строке попробуйте:

    Dir | C: \ Windows \ System32 \ find.exe / i "myfile.txt"

Это должно показать вам, что вам нужно увидеть.

Если вы все еще не можете понять это из этого, отредактируйте свой пост, чтобы включить то, что вы видите из этих команд, и кто-то поможет вам.

2
ответ дан 30 November 2019 в 02:11
поделиться

Вы можете получить файлы модифицированной даты с использованием VBScript

Set objFS=CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
strFile= objArgs(0)
WScript.Echo objFS.GetFile(strFile).DateLastModified

Сохранить вышеупомянутую как momettdate.vbs и в командной строке

c:\test> cscript //nologo mygetdate.vbs myfile
1
ответ дан 30 November 2019 в 02:11
поделиться

Какой вывод (точно) DIR myfile.txt Дайте в текущем каталоге? Что произойдет, если вы устанавливаете разделители?

FOR /f "tokens=1,2* delims= " %%a in ('dir myfile.txt^|find /i " myfile.txt"') DO SET fileDate=%%a 

(обратите внимание на пространство после DELIMS = )
(Чтобы облегчить жизнь, вы можете сделать это из командной строки, заменив %% A с % A )

)

0
ответ дан 30 November 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: