Change File Date or Time

Discuss RoboTask here
Post Reply
OldGeek
Posts: 35
Joined: Thu Jun 01, 2023 2:50 pm
Location: Upstate NY

Change File Date or Time

Post by OldGeek »

Does RoboTask have any way to change a file's date and or time (Modified and Created)? Thanks in advance
Windows 11 Pro, RoboTask v10.0.2
Oleg
Site Admin
Posts: 3135
Joined: Thu Jan 01, 1970 1:00 am
Contact:

Re: Change File Date or Time

Post by Oleg »

Look at the File Date and Time action. It can set specified date-time of file or folder (file modified date-time)
Oleg Yershov
OldGeek
Posts: 35
Joined: Thu Jun 01, 2023 2:50 pm
Location: Upstate NY

Re: Change File Date or Time

Post by OldGeek »

I need a method to change the CREATED date/time. The only thing I could find was to change the MODIFIED date/time.
Below is my script

Code: Select all

;*****************************
;* RoboTask Task file
;* Do not edit in text editor!
;*****************************
 
[Root]
ActionAfterRun=INTEGER|0
Actions=FOLDER
Automat=INTEGER|-1
CatID=INTEGER|1332952927
Comment=STRINGLIST
ContinueOnError=INTEGER|2
DisableOnError=INTEGER|0
DoNotStopWhenShutdown=INTEGER|0
ExternalName=STRING|"Task22"
Hide=INTEGER|0
ID=INTEGER|-1403238825
LogOnAsUser=INTEGER|1
Name=STRING|"Fix Recall File Dates"
OnErrorTaskID=INTEGER|1879502808
Priority=INTEGER|3
RunOnClose=INTEGER|0
RunOnStartup=INTEGER|0
StepPause=INTEGER|0
ToLog=INTEGER|1
UnicodeFormat=INTEGER|1
WriteGeneralLog=INTEGER|0

[Actions]
Action1=FOLDER
Action10=FOLDER
Action11=FOLDER
Action12=FOLDER
Action13=FOLDER
Action14=FOLDER
Action15=FOLDER
Action16=FOLDER
Action17=FOLDER
Action18=FOLDER
Action19=FOLDER
Action2=FOLDER
Action20=FOLDER
Action3=FOLDER
Action4=FOLDER
Action5=FOLDER
Action6=FOLDER
Action7=FOLDER
Action8=FOLDER
Action9=FOLDER

[Actions\Action1]
ActionID=STRING|"A_ROBOTASK_LOG"
Enabled=INTEGER|-1
Name=STRING|"Log Message"
Params=FOLDER

[Actions\Action1\Params]
message=STRING|"====== [Start Task:] Fix Recall File Dates"
type=STRING|"3"

[Actions\Action10]
ActionID=STRING|"A_VARIABLES_SET"
Enabled=INTEGER|-1
Name=STRING|"Set variable ""TempCreatedDateTime"" with value ""{FileCreateTime({CurrentFileName})}"""
Params=FOLDER

[Actions\Action10\Params]
_rt_variables_produced=STRING|"TempCreatedDateTime"
expand=STRING|"0"
linecount=STRING|"1"
varname=STRING|"TempCreatedDateTime"
varvalue=STRING|"{FileCreateTime({CurrentFileName})}"

[Actions\Action11]
ActionID=STRING|"A_ROBOTASK_LOG"
Enabled=INTEGER|-1
Name=STRING|"Log Message"
Params=FOLDER

[Actions\Action11\Params]
message=STRING|"Temp Created Date Time [Before STR Update]: {TempCreatedDateTime}"
type=STRING|"3"

[Actions\Action12]
ActionID=STRING|"A_STR_REPLACE"
Enabled=INTEGER|-1
Name=STRING|"STR Replace"
Params=FOLDER

[Actions\Action12\Params]
_rt_variables_produced=STRING|"TempCreatedDateTime"
case=STRING|"0"
mode=STRING|"2"
replacement=STRING|":00"
source=STRING|"{TempCreatedDateTime}"
substring=STRING|":01"
variable=STRING|"TempCreatedDateTime"

[Actions\Action13]
ActionID=STRING|"A_STR_REPLACE"
Enabled=INTEGER|-1
Name=STRING|"STR Replace"
Params=FOLDER

[Actions\Action13\Params]
_rt_variables_produced=STRING|"TempCreatedDateTime"
case=STRING|"0"
mode=STRING|"2"
replacement=STRING|":00"
source=STRING|"{TempCreatedDateTime}"
substring=STRING|":02"
variable=STRING|"TempCreatedDateTime"

[Actions\Action14]
ActionID=STRING|"A_ROBOTASK_LOG"
Enabled=INTEGER|-1
Name=STRING|"Log Message"
Params=FOLDER

[Actions\Action14\Params]
message=STRING|"Temp Created Date Time [After STR Update]: {TempCreatedDateTime}"
type=STRING|"3"

[Actions\Action15]
ActionID=STRING|"A_FILE_DATETIME"
Enabled=INTEGER|-1
Name=STRING|"File Date and Time"
Params=FOLDER

[Actions\Action15\Params]
datetime=STRING|"{TempCreatedDateTime}"
files=STRING|"{CurrentFileName}"
processfiles=STRING|"1"
processfolders=STRING|"0"
withsubfolders=STRING|"0"

[Actions\Action16]
ActionID=STRING|"A_ROBOTASK_LOG"
Enabled=INTEGER|-1
Name=STRING|"Log Message"
Params=FOLDER

[Actions\Action16\Params]
message=STRING|"Updated Current File Created Date Time: {FileCreateTime({CurrentFileName})}"
type=STRING|"3"

[Actions\Action17]
ActionID=STRING|"A_FILE_ATTRIBUTES"
Enabled=INTEGER|0
Name=STRING|"Change attributes of file ""{FileName}"""
Params=FOLDER

[Actions\Action17\Params]
archive=STRING|"0"
filename=STRING|"{FileName}"
hidden=STRING|"0"
readonly=STRING|"0"
system=STRING|"0"

[Actions\Action18]
ActionID=STRING|"A_ROBOTASK_LOG"
Enabled=INTEGER|-1
Name=STRING|"Log Message"
Params=FOLDER

[Actions\Action18\Params]
message=STRING|" "
type=STRING|"3"

[Actions\Action19]
ActionID=STRING|"A_LOOP_END"
Enabled=INTEGER|-1
Name=STRING|"End Loop"

[Actions\Action2]
ActionID=STRING|"A_VARIABLES_CREATE"
Enabled=INTEGER|-1
Name=STRING|"Create local variable ""CurrentFileName"" with value """""
Params=FOLDER

[Actions\Action2\Params]
_rt_variables_produced=STRING|"CurrentFileName"
expand=STRING|"0"
linecount=STRING|"0"
varkind=STRING|"1"
varname=STRING|"CurrentFileName"

[Actions\Action20]
ActionID=STRING|"A_ROBOTASK_LOG"
Enabled=INTEGER|-1
Name=STRING|"Log Message"
Params=FOLDER

[Actions\Action20\Params]
message=STRING|"====== [End Task:] Fix Recall File Dates"
type=STRING|"3"

[Actions\Action3]
ActionID=STRING|"A_VARIABLES_CREATE"
Enabled=INTEGER|-1
Name=STRING|"Create local variable ""CurrentFileCreatedDateTime"" with value """""
Params=FOLDER

[Actions\Action3\Params]
_rt_variables_produced=STRING|"CurrentFileCreatedDateTime"
expand=STRING|"0"
linecount=STRING|"0"
varkind=STRING|"1"
varname=STRING|"CurrentFileCreatedDateTime"

[Actions\Action4]
ActionID=STRING|"A_VARIABLES_CREATE"
Enabled=INTEGER|-1
Name=STRING|"Create local variable ""CurrentFileModifiedDateTime"" with value """""
Params=FOLDER

[Actions\Action4\Params]
_rt_variables_produced=STRING|"CurrentFileModifiedDateTime"
expand=STRING|"0"
linecount=STRING|"0"
varkind=STRING|"1"
varname=STRING|"CurrentFileModifiedDateTime"

[Actions\Action5]
ActionID=STRING|"A_VARIABLES_CREATE"
Enabled=INTEGER|-1
Name=STRING|"Create local variable ""TempCreatedDateTime"" with value """""
Params=FOLDER

[Actions\Action5\Params]
_rt_variables_produced=STRING|"TempCreatedDateTime"
expand=STRING|"0"
linecount=STRING|"0"
varkind=STRING|"1"
varname=STRING|"TempCreatedDateTime"

[Actions\Action6]
ActionID=STRING|"A_VARIABLES_CREATE"
Enabled=INTEGER|-1
Name=STRING|"Create local variable ""TempModifiedDateTime"" with value """""
Params=FOLDER

[Actions\Action6\Params]
_rt_variables_produced=STRING|"TempModifiedDateTime"
expand=STRING|"0"
linecount=STRING|"0"
varkind=STRING|"1"
varname=STRING|"TempModifiedDateTime"

[Actions\Action7]
ActionID=STRING|"A_LOOP_FILE"
Enabled=INTEGER|-1
Name=STRING|"File Loop"
Params=FOLDER

[Actions\Action7\Params]
_rt_variables_produced=STRING|"CurrentFileName"
createmode=STRING|"7"
createormodified=STRING|"1"
date1=STRING|"20240710"
date2=STRING|"20240710"
destvar=STRING|"CurrentFileName"
DuringDays=STRING|"1"
DuringHours=STRING|"1"
DuringMinutes=STRING|"11"
DuringMonths=STRING|"1"
file0=STRING|"C:\Users\redwa\Pictures\Recall\*.jpg"
filecount=STRING|"1"
OlderDays=STRING|"1"
OlderHours=STRING|"1"
OlderMinutes=STRING|"1"
OlderMonths=STRING|"1"
savesize=STRING|"0"
searchkind=STRING|"0"
sort=STRING|"1"
sortby=STRING|"1"
sortorder=STRING|"1"
subdirs=STRING|"0"
timesize=STRING|"0"
timevar=STRING|"CurrentFileModifiedDateTime"
WithoutPath=STRING|"0"

[Actions\Action8]
ActionID=STRING|"A_ROBOTASK_LOG"
Enabled=INTEGER|-1
Name=STRING|"Log Message"
Params=FOLDER

[Actions\Action8\Params]
message=STRING|"Current File Name: {CurrentFileName}"
type=STRING|"3"

[Actions\Action9]
ActionID=STRING|"A_ROBOTASK_LOG"
Enabled=INTEGER|-1
Name=STRING|"Log Message"
Params=FOLDER

[Actions\Action9\Params]
message=STRING|"Current File Created Date Time: {FileCreateTime({CurrentFileName})}"
type=STRING|"3"
Windows 11 Pro, RoboTask v10.0.2
Oleg
Site Admin
Posts: 3135
Joined: Thu Jan 01, 1970 1:00 am
Contact:

Re: Change File Date or Time

Post by Oleg »

There is no native function of RoboTask. I wrote this into our ToDo
But you can use powershell script. For example:

Code: Select all

(Get-Item  "D:\systemp\test.txt").CreationTime = '2024-11-13 06:00:00'
It can get universal format of date-time: YYYY-MM-DD hh:nn:ss

You can use also american date-time format: MM/DD/YYYY hh:nn:ss

Code: Select all

(Get-Item  "D:\systemp\test.txt").CreationTime = '11/13/2024 06:00:00'
Read here information about all properties of file object

Code: Select all

TypeName: System.IO.FileInfo

Name              MemberType Definition
----              ---------- ----------
Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
CreationTime      Property   System.DateTime CreationTime {get;set;}
CreationTimeUtc   Property   System.DateTime CreationTimeUtc {get;set;}
Directory         Property   System.IO.DirectoryInfo Directory {get;}
DirectoryName     Property   System.String DirectoryName {get;}
Exists            Property   System.Boolean Exists {get;}
Extension         Property   System.String Extension {get;}
FullName          Property   System.String FullName {get;}
IsReadOnly        Property   System.Boolean IsReadOnly {get;set;}
LastAccessTime    Property   System.DateTime LastAccessTime {get;set;}
LastAccessTimeUtc Property   System.DateTime LastAccessTimeUtc {get;set;}
LastWriteTime     Property   System.DateTime LastWriteTime {get;set;}
LastWriteTimeUtc  Property   System.DateTime LastWriteTimeUtc {get;set;}
Length            Property   System.Int64 Length {get;}
Name              Property   System.String Name {get;}
Oleg Yershov
OldGeek
Posts: 35
Joined: Thu Jun 01, 2023 2:50 pm
Location: Upstate NY

Re: Change File Date or Time

Post by OldGeek »

For the script I'm working on I only need to set the SECONDS to 00. Thanks for adding it to your ToDo list

This is the output when I tried the Powershell thing you suggested

7/15/2024 4:42:44 PM: Temp Created Date Time [Before STR Update]: 7/15/2024 4:35:01 PM
7/15/2024 4:42:44 PM: Temp Created Date Time [After STR Update]: 7/15/2024 4:35:00 PM
7/15/2024 4:42:44 PM: [STDOUT] Set-Item : Provider operation stopped because the provider does not support this operation.
7/15/2024 4:42:44 PM: [STDOUT] At C:\Users\redwa\AppData\Local\Temp\qw3n7NHbwTVrxLpMMm5V76PhLPHD7hsy.ps1:1 char:2
7/15/2024 4:42:44 PM: [STDOUT] + (Set-Item "{FileName}").CreationTime = '{TempCreatedDateTime}'
7/15/2024 4:42:44 PM: [STDOUT] + ~~~~~~~~~~~~~~~~~~~~~
7/15/2024 4:42:44 PM: [STDOUT] + CategoryInfo : NotImplemented: (:) [Set-Item], PSNotSupportedException
7/15/2024 4:42:44 PM: [STDOUT] + FullyQualifiedErrorId : NotSupported,Microsoft.PowerShell.Commands.SetItemCommand
7/15/2024 4:42:44 PM: [STDOUT]
Windows 11 Pro, RoboTask v10.0.2
Oleg
Site Admin
Posts: 3135
Joined: Thu Jan 01, 1970 1:00 am
Contact:

Re: Change File Date or Time

Post by Oleg »

Maybe you forgot to switch on this option?
EpandVariables.png
EpandVariables.png (19.59 KiB) Viewed 27997 times
If you are using RoboTask variables in script body you should expand variables before running.
Oleg Yershov
OldGeek
Posts: 35
Joined: Thu Jun 01, 2023 2:50 pm
Location: Upstate NY

Re: Change File Date or Time

Post by OldGeek »

I running Windows 11 Pro
Here is my output below
------------------------------
I 7/16/2024 8:42:46 AM: ****** Starting task: PowerShell Script... ******************
I 7/16/2024 8:42:46 AM: Executing "1.Log Message"
7/16/2024 8:42:46 AM: Powershell : (Set-Item "C:\Users\redwa\Pictures\Recall\Recall 2024-07-15 16-30.jpg").CreationTime='11/13/2024 16:30:00'
I 7/16/2024 8:42:46 AM: Executing "2.PowerShell Script"
7/16/2024 8:42:46 AM: [STDOUT] Set-Item : Provider operation stopped because the provider does not support this operation.
7/16/2024 8:42:46 AM: [STDOUT] At C:\Users\redwa\AppData\Local\Temp\1SvHowfDknNpCrNCCovLVoscZsFGaOv6.ps1:1 char:2
7/16/2024 8:42:46 AM: [STDOUT] + (Set-Item "C:\Users\redwa\Pictures\Recall\Recall 2024-07-15 16-30.jpg ...
7/16/2024 8:42:46 AM: [STDOUT] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7/16/2024 8:42:46 AM: [STDOUT] + CategoryInfo : NotImplemented: (:) [Set-Item], PSNotSupportedException
7/16/2024 8:42:46 AM: [STDOUT] + FullyQualifiedErrorId : NotSupported,Microsoft.PowerShell.Commands.SetItemCommand
7/16/2024 8:42:46 AM: [STDOUT]
I 7/16/2024 8:42:46 AM: Task executed successfully
Windows 11 Pro, RoboTask v10.0.2
OldGeek
Posts: 35
Joined: Thu Jun 01, 2023 2:50 pm
Location: Upstate NY

Re: Change File Date or Time

Post by OldGeek »

I ran this for your information

7/16/2024 8:51:48 AM: ****** Starting task: PowerShell Script... ******************
7/16/2024 8:51:48 AM: Executing "1.Log Message"
7/16/2024 8:51:48 AM: Executing "2.PowerShell Script"
7/16/2024 8:51:48 AM: [STDOUT]
7/16/2024 8:51:48 AM: [STDOUT] Name Value
7/16/2024 8:51:48 AM: [STDOUT] ---- -----
7/16/2024 8:51:48 AM: [STDOUT] PSVersion 5.1.22621.3880
7/16/2024 8:51:48 AM: [STDOUT] PSEdition Desktop
7/16/2024 8:51:48 AM: [STDOUT] PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
7/16/2024 8:51:48 AM: [STDOUT] BuildVersion 10.0.22621.3880
7/16/2024 8:51:48 AM: [STDOUT] CLRVersion 4.0.30319.42000
7/16/2024 8:51:48 AM: [STDOUT] WSManStackVersion 3.0
7/16/2024 8:51:48 AM: [STDOUT] PSRemotingProtocolVersion 2.3
7/16/2024 8:51:48 AM: [STDOUT] SerializationVersion 1.1.0.1
7/16/2024 8:51:48 AM: Task executed successfully
Windows 11 Pro, RoboTask v10.0.2
Oleg
Site Admin
Posts: 3135
Joined: Thu Jan 01, 1970 1:00 am
Contact:

Re: Change File Date or Time

Post by Oleg »

I 7/16/2024 8:42:46 AM: Executing "2.PowerShell Script"
7/16/2024 8:42:46 AM: [STDOUT] Set-Item : Provider operation stopped because the provider does not support this operation.
7/16/2024 8:42:46 AM: [STDOUT] At C:\Users\redwa\AppData\Local\Temp\1SvHowfDknNpCrNCCovLVoscZsFGaOv6.ps1:1 char:2
Why Set-item ???

I wrote
(Get-Item "D:\systemp\test.txt").CreationTime = '11/13/2024 06:00:00'
Also look at my task below. It works

Code: Select all

;*****************************
;* RoboTask Task file
;* Do not edit in text editor!
;*****************************
 
[Root]
ActionAfterRun=INTEGER|0
Actions=FOLDER
Automat=INTEGER|-1
CatID=INTEGER|444033236
Comment=STRINGLIST
ContinueOnError=INTEGER|0
DisableOnError=INTEGER|0
DoNotStopWhenShutdown=INTEGER|0
ExternalName=STRING|"Task45"
Hide=INTEGER|0
ID=INTEGER|-1716440280
LogOnAsUser=INTEGER|1
Name=STRING|"change createion time of the file"
OnErrorTaskID=INTEGER|0
Priority=INTEGER|3
RunOnClose=INTEGER|0
RunOnStartup=INTEGER|0
StepPause=INTEGER|0
ToLog=INTEGER|3
UnicodeFormat=INTEGER|1
WriteGeneralLog=INTEGER|0

[Actions]
Action1=FOLDER
Action2=FOLDER
Action3=FOLDER
Action4=FOLDER

[Actions\Action1]
ActionID=STRING|"A_VARIABLES_SET"
Enabled=INTEGER|-1
Name=STRING|"Set variable ""filename"" with value ""D:\systemp\test.txt"""
Params=FOLDER

[Actions\Action1\Params]
_rt_variables_produced=STRING|"filename"
expand=STRING|"0"
linecount=STRING|"1"
varname=STRING|"filename"
varvalue=STRING|"D:\systemp\test.txt"

[Actions\Action2]
ActionID=STRING|"A_VARIABLES_SET"
Enabled=INTEGER|-1
Name=STRING|"Set variable ""creationDT"" with value ""2024-07-16 10:00:00"""
Params=FOLDER

[Actions\Action2\Params]
_rt_variables_produced=STRING|"creationDT"
expand=STRING|"0"
linecount=STRING|"1"
varname=STRING|"creationDT"
varvalue=STRING|"2024-07-16 10:00:00"

[Actions\Action3]
ActionID=STRING|"A_VARIABLES_SET"
Enabled=INTEGER|-1
Name=STRING|"Set variable ""writeDT"" with value ""2024-07-16 11:00:00"""
Params=FOLDER

[Actions\Action3\Params]
_rt_variables_produced=STRING|"writeDT"
expand=STRING|"0"
linecount=STRING|"1"
varname=STRING|"writeDT"
varvalue=STRING|"2024-07-16 11:00:00"

[Actions\Action4]
ActionID=STRING|"A_SCRIPT_POWERSHELLSCRIPT"
Enabled=INTEGER|-1
Name=STRING|"PowerShell Script"
Params=FOLDER

[Actions\Action4\Params]
command_line_template=STRING|"""[InterpreterPath]"" -ExecutionPolicy RemoteSigned -File ""[ScriptPath]"""
expand=STRING|"1"
script_0=STRING|"(Get-Item  ""{filename}"").CreationTime = '{creationDT}'"
script_1=STRING|"(Get-Item  ""{filename}"").LastWriteTime = '{writeDT}'"
script_count=STRING|"2"
script_type=STRING|"0"
search_paths_count=STRING|"0"
use_embedded=STRING|"0"
Oleg Yershov
OldGeek
Posts: 35
Joined: Thu Jun 01, 2023 2:50 pm
Location: Upstate NY

Re: Change File Date or Time

Post by OldGeek »

That worked, thank you very much
Windows 11 Pro, RoboTask v10.0.2
Post Reply