2017-02-15 7 views
0

Мне нужна быстрая поддержка небольшого фрагмента кода. Я хочу «прикоснуться» к файлу или, скажем, изменить «Last modified Date».Настройка «Последнее изменение даты» | Прикоснитесь к файлу (Noob-request)

У меня есть следующий код-фрагмент:

Touch "C:\temp\VBS", "test.txt", "1/01/2006 11:00:00 PM" 

Function Touch(strDir, strFileName, DateTime) 

Dim objShell, objFolder 

Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.NameSpace(strDir) 
objFolder.Items.Item(strFileName).ModifyDate = DateTime 

End Function 

Это работает, но я не хочу, чтобы передать папку и файл отдельно функции. («C: \ temp \ VBS» и «test.txt») Я хочу передать полное доменное имя или «полное имя». ("C: \ Temp \ VBS \ test.txt")

Все образцы, которые я нашел с помощью Google использовать этот сплит-тек, и я не в состоянии писать VB сам по себе ...

Спасибо

ответ

2

Разделение, очевидно, мотивировано различными аргументами .NameSpace и .Item. Учитывая полный файл спецификации, вы можете использовать методы .GetParentFolderName и .GetFileName на FileSystemObject:

Option Explicit 

Dim goFS : Set goFS = CreateObject("Scripting.FileSystemObject") 
Dim sFSpec : sFSpec = WScript.ScriptFullName 
WScript.Echo "Path", goFS.GetParentFolderName(sFSpec) 
WScript.Echo "Name", goFS.GetFileName(sFSpec) 

выход:

e:\work\proj\soa\42225862 
cscript 42254081.vbs 
Path e:\work\proj\soa\42225862 
Name 42254081.vbs 
+0

Я думаю, что я получил это работает на основе вашего ответа. Спасибо! – Walhalla