2013-12-08 5 views
1

Я хотел бы увеличить время доступа к файлу на определенное количество часов, например. 12 часов.Увеличение времени доступа к файлу

Я нашел способ взломать его с помощью Unxutilstouch.exe инструмента и рассчитать новую дату вручную:

touch.exe -a -t MMDDhhmmCCYY my_file.txt 

Однако, я хотел бы автоматизировать это без необходимости вводить новую дату вручную. Итак, вот мои вопросы:

  1. Как я могу получить время доступа к файлу в DOS?
  2. Как его увеличить?
  3. Как сместить это вместе в скрипт/пакетный файл?
  4. Или есть лучшие подходы?

Большое спасибо!

ответ

3

Поскольку вы получили это помечено для Powershell:

$file = Get-ChildItem testfile.txt 
$file.lastwritetime 

$file.LastWriteTime = ($file.LastWriteTime).AddHours(12) 
$file.LastWriteTime 

Tuesday, November 19, 2013 5:27:18 PM 
Wednesday, November 20, 2013 5:27:18 AM 
+1

Это не будет работать в течение более чем одного файла, так как вы используете 'Get-ChildItem' это просто дело изменения фильтра для сохранения более одного файла в переменной $ file. Вот как это можно сделать для большего количества файлов. '$ file = Get-ChildItem -path \ temp -filter * .log; $ file | foreach { \t $ _. LastWriteTime = ($ _. LastWriteTime) .AddHours (12); \t $ _. LastWriteTime } ' – nohwnd

1

Вы можете получить время последнего доступа в пакетном режиме, используя этот пример:

for /f %%A in (' dir /b /TA "c:\test.txt" ') do set accesstime=%%~tA 
echo %accesstime% 

, но затем, чтобы увеличить его правильно, вы необходимо будет сделать примерно следующее: Adding to %TIME% variable in windows cmd script

И учетные данные для дат прыжков и т. д.

В PowerShell, вы можете читать и писать LastAccessTime файла следующим образом:

$file = Get-Item "c:\test.txt" 
$file.LastAccessTime = ($file.LastAccessTime).AddHours(12) 
Смежные вопросы