But you can use some workaround:
you script (bat file) implement your monitoring logic and collected metrics will be sent by zabbix_sender. These zabbix sender items must be Zabbix trapper type. You can send also many metrics in one go (see manual -i)
2.) save value into file
your script will save all collected metrics into tmp file and then you have to create special items for parsing this tmp file. Key vfs.file.regexp is the best for this job:
vfs.file.regexp[/tmp/file.txt,^\w+ \w+ (\w+),,,,\1]
vfs.file.regexp[/tmp/file.txt,^\w+ \w+ \w+ (\w+),,,,\1]
vfs.file.regexp[/tmp/file.txt,^\w+ \w+ \w+ \w+ (\w+),,,,\1]
3.) similar concept as 2nd one, but instead of file you will use shared memory
it can be over engineering, but if you care about IOps.
I use https://gist.github.com/jangaraj/edc9dde939cbd577bbba for Raspberry Pi - system on SD card so I need to minimize IOPs. I'll store ping output into shared memory segment and then I'm parsing ping output from different items (ping.max, ping.avg, ping.min, ...)
Yes, you can use string, but how do you want to parse string into values then with Calculated items - again it's not possible. Zabbix doesn't provide suitable parsing (sub)string functions for calculated items.
You can do it using runcached (run cached) bitbucket.org/sivann/runcached/overview . It automates caching the command output and parsing different parts of it.