Это возможно в управляемом коде (C # / VB), создав собственный производный класс PSVariable, но не напрямую в чистом скрипте, извините.Я говорю «чистый скрипт», потому что в powershell v2 вы можете встроить C # с помощью add-type.Тем не менее, вы можете взломать его в сценарии, полагаясь на неявные вызовы ToString, но это не будет надежным в каждой ситуации.Пример:
# empty custom object
$o = new-object psobject
# override ToString with a PSScriptMethod member
$o.psobject.members.add((new-object `
System.Management.Automation.PSScriptMethod "ToString", {
"ticks: $([datetime]::now.ticks)" }))
ps> $o
ticks: 634256043148813794
ps> $o
ticks: 634256043165574752
Обратите внимание, что количество тиков отличается при каждой оценке переменной.Если, конечно, если вы просто используете обычную функцию вместо переменной, это намного проще.
function Ticks { [datetime]::now.ticks }
# use as a parameter - note the use of ( and )
ps> write-host (ticks)
634256043148813794
# use in a string - note the use of $( and )
ps> write-host "ticks $(ticks)"
ticks 634256043165574752
Надеюсь, это поможет
-Oisin