Jump to content
Ketarin forum

shawn

Moderators
  • Posts

    1,181
  • Joined

  • Last visited

Posts posted by shawn

  1. @g00p3k: This is commonly because the version tracking information has changed (advanced, "use this variable as indicator for changes") but the actual download URL is either the same file, invalid or otherwise broken. This happens in some situations I've seen where the URL pattern is suddenly different, or the URL itself wasn't changed on the release page, even though they updated the version information.

     

    @Necrox: Ketarin tracks the previous downloads based on it's **full path**, including drive letter, as well as other properties. If you are running Ketarin on a different device and want it to persist settings to be able to remove previous versions, it's important that the FULL PATH to your Ketarin installation and file cache be exactly the same. For this reason I personally use "K:\_Ketarin" as the root for all my Ketarin-related stuff, including the file cache. On alternate devices you can use diskpart or Disk Management to change the drive letter of your USB / removable drive, or map the shared drive using your preferred letter and name. Just make sure you're consistent above all else.

     

    You can use a batch stub to load Ketarin and if the current path isn't correct, warn and/or exit. 

     

    if /i not "%~dp0"=="k:\_ketarin" goto warning
  2. Since you're already performing a GCI on there and collecting valuable input for the base name, you should be able to store everything in one folder with something like this:

     

     

    $fsorted = Get-ChildItem -File -Name $app.Name"_*."$fext | Sort-Object -Property LastWriteTime -descending

     

    That should (assuming you pattern your downloaded file names similarly) correctly select only matching files for filtering, then removal, thus eliminating the need to use a unique folder per application.

  3. No idea. I compared yours to mine that uses the same source URL and almost the same pattern. Mine works, yours doesn't. I checked the returned HTML from both: the same. I even replaced your RX pattern with mine in your app profile. It still captures the wrong one. As far as I can tell, there's no reason for it. I would delete it and start again...

     

    Then I looked in the source of your XML file. It has a property at line 70 "RegexRightToLeft" with a TRUE value. I unchecked the "RTL" in the "url" variable and re-loaded the page and it parsed correctly. Gotta be careful with that.

  4. 
    

    <?xml version='1.0' encoding='utf-8'?>

    <Jobs>

    <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <Category>Updates\iOS</Category>

    <WebsiteUrl>http://www.iclarified.com/750/where-to-download-iphone-firmware-files-from</WebsiteUrl>

    <UserAgent />

    <UserNotes />

    <IgnoreFileInformation>false</IgnoreFileInformation>

    <DownloadBeta>Default</DownloadBeta>

    <DownloadDate xsi:nil="true" />

    <CheckForUpdatesOnly>false</CheckForUpdatesOnly>

    <VariableChangeIndicator>version</VariableChangeIndicator>

    <HashVariable />

    <HashType>None</HashType>

    <CanBeShared>true</CanBeShared>

    <ShareApplication>false</ShareApplication>

    <ExclusiveDownload>false</ExclusiveDownload>

    <HttpReferer />

    <SetupInstructions />

    <Variables>

    <item>

    <key>

    <string>schangelog</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent />

    <Name>schangelog</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>swebsite</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent>http://www.iclarified.com/750/where-to-download-iphone-firmware-files-from</TextualContent>

    <Name>swebsite</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>snotes</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent />

    <Name>snotes</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>slug</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent>{appname:replace:iPhone :}</TextualContent>

    <Name>slug</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>spc</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent />

    <Name>spc</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>version</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>RegularExpression</VariableType>

    <Regex>>([\d\.]+) \({slug}\):</Regex>

    <Url>http://www.iclarified.com/750/where-to-download-iphone-firmware-files-from</Url>

    <Name>version</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>dl</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>RegularExpression</VariableType>

    <Regex>>{version} \({slug}\):[^"]+"(http[^"]+)"</Regex>

    <Url>http://www.iclarified.com/750/where-to-download-iphone-firmware-files-from</Url>

    <Name>dl</Name>

    </UrlVariable>

    </value>

    </item>

    </Variables>

    <ExecuteCommand />

    <ExecutePreCommand />

    <ExecuteCommandType>Batch</ExecuteCommandType>

    <ExecutePreCommandType>Batch</ExecutePreCommandType>

    <SourceType>FixedUrl</SourceType>

    <DeletePreviousFile>true</DeletePreviousFile>

    <Enabled>true</Enabled>

    <FileHippoId />

    <TargetPath>..\{category}\{appname:regexreplace:([\s\t\r\n\-\\&\/]+):_}-{version}.{url:ext}</TargetPath>

    <FixedDownloadUrl>{dl}</FixedDownloadUrl>

    <Name>iPhone <placeholder name="iPhone Version?" value="6s" options="4S|5 GSM|5 GSM+CDMA|5c GSM|5c GSM+CDMA|5s GSM|5s GSM+CDMA|6|6+|6s|6s+|SE" /></Name>

    </ApplicationJob>

    </Jobs>

     

  5. 
    

    <?xml version='1.0' encoding='utf-8'?>

    <Jobs>

    <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <Category>Updates\iOS</Category>

    <WebsiteUrl>http://www.iclarified.com/8500/where-to-download-ipad-firmware-files-from</WebsiteUrl>

    <UserAgent />

    <UserNotes />

    <IgnoreFileInformation>false</IgnoreFileInformation>

    <DownloadBeta>Default</DownloadBeta>

    <DownloadDate xsi:nil="true" />

    <CheckForUpdatesOnly>false</CheckForUpdatesOnly>

    <VariableChangeIndicator>version</VariableChangeIndicator>

    <HashVariable />

    <HashType>None</HashType>

    <CanBeShared>true</CanBeShared>

    <ShareApplication>false</ShareApplication>

    <ExclusiveDownload>false</ExclusiveDownload>

    <HttpReferer />

    <SetupInstructions />

    <Variables>

    <item>

    <key>

    <string>schangelog</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent />

    <Name>schangelog</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>swebsite</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent>http://www.iclarified.com/8500/where-to-download-ipad-firmware-files-from</TextualContent>

    <Name>swebsite</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>snotes</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent />

    <Name>snotes</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>slug</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent>{appname}</TextualContent>

    <Name>slug</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>spc</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent />

    <Name>spc</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>version</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>RegularExpression</VariableType>

    <Regex>>([\d\.]+) \({slug}\):</Regex>

    <Url>http://www.iclarified.com/8500/where-to-download-ipad-firmware-files-from</Url>

    <Name>version</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>dl</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>RegularExpression</VariableType>

    <Regex>>{version} \({slug}\):[^"]+"(http[^"]+)"</Regex>

    <Url>http://www.iclarified.com/8500/where-to-download-ipad-firmware-files-from</Url>

    <Name>dl</Name>

    </UrlVariable>

    </value>

    </item>

    </Variables>

    <ExecuteCommand />

    <ExecutePreCommand />

    <ExecuteCommandType>Batch</ExecuteCommandType>

    <ExecutePreCommandType>Batch</ExecutePreCommandType>

    <SourceType>FixedUrl</SourceType>

    <DeletePreviousFile>true</DeletePreviousFile>

    <Enabled>true</Enabled>

    <FileHippoId />

    <TargetPath>..\{category}\{appname:regexreplace:([\s\t\r\n\-\\&\/]+):_}-{version}.{url:ext}</TargetPath>

    <FixedDownloadUrl>{dl}</FixedDownloadUrl>

    <Name><placeholder name="iPad Version?" value="iPad Pro Wi-Fi" options="iPad 2 CDMA|iPad 2 GSM|iPad 2 New|iPad 2 Wi-Fi|iPad 3 CDMA|iPad 3 GSM|iPad 3 Wi-Fi|iPad 4 GSM|iPad 4 GSM_CDMA|iPad 4 Wi-Fi|iPad Air 2 Cellular|iPad Air 2 Wi-Fi|iPad Air Cellular|iPad Air China|iPad Air Wi-Fi|iPad Mini 2 Cellular|iPad Mini 2 China|iPad Mini 2 Wi-Fi|iPad Mini 3 Cellular|iPad Mini 3 China|iPad Mini 3 Wi-Fi|iPad Mini 4 Cellular|iPad Mini 4 Wi-Fi|iPad Mini CDMA|iPad Mini GSM|iPad Mini Wi-Fi|iPad Pro 9.7 Cellular|iPad Pro 9.7 Wi-Fi|iPad Pro Cellular|iPad Pro Wi-Fi" /></Name>

    </ApplicationJob>

    </Jobs>

     

  6. 
    

    <?xml version='1.0' encoding='utf-8'?>

    <Jobs>

    <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <Category>Updates\iOS</Category>

    <WebsiteUrl>http://www.iclarified.com/757/where-to-download-ipod-touch-firmware-files-from</WebsiteUrl>

    <UserAgent />

    <UserNotes />

    <IgnoreFileInformation>false</IgnoreFileInformation>

    <DownloadBeta>Default</DownloadBeta>

    <DownloadDate xsi:nil="true" />

    <CheckForUpdatesOnly>false</CheckForUpdatesOnly>

    <VariableChangeIndicator>version</VariableChangeIndicator>

    <HashVariable />

    <HashType>None</HashType>

    <CanBeShared>true</CanBeShared>

    <ShareApplication>false</ShareApplication>

    <ExclusiveDownload>false</ExclusiveDownload>

    <HttpReferer />

    <SetupInstructions />

    <Variables>

    <item>

    <key>

    <string>schangelog</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent />

    <Name>schangelog</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>swebsite</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent>http://www.iclarified.com/757/where-to-download-ipod-touch-firmware-files-from</TextualContent>

    <Name>swebsite</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>snotes</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent />

    <Name>snotes</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>slug</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent>{appname:replace:iPod Touch :}</TextualContent>

    <Name>slug</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>spc</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>Textual</VariableType>

    <Regex />

    <TextualContent />

    <Name>spc</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>version</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>RegularExpression</VariableType>

    <Regex>>([\d\.]+) \({slug}\):</Regex>

    <Url>http://www.iclarified.com/757/where-to-download-ipod-touch-firmware-files-from</Url>

    <Name>version</Name>

    </UrlVariable>

    </value>

    </item>

    <item>

    <key>

    <string>dl</string>

    </key>

    <value>

    <UrlVariable>

    <RegexRightToLeft>false</RegexRightToLeft>

    <VariableType>RegularExpression</VariableType>

    <Regex>>{version} \({slug}\):[^"]+"(http[^"]+)"</Regex>

    <Url>http://www.iclarified.com/757/where-to-download-ipod-touch-firmware-files-from</Url>

    <Name>dl</Name>

    </UrlVariable>

    </value>

    </item>

    </Variables>

    <ExecuteCommand />

    <ExecutePreCommand />

    <ExecuteCommandType>Batch</ExecuteCommandType>

    <ExecutePreCommandType>Batch</ExecutePreCommandType>

    <SourceType>FixedUrl</SourceType>

    <DeletePreviousFile>true</DeletePreviousFile>

    <Enabled>true</Enabled>

    <FileHippoId />

    <LastUpdated>2016-04-30T01:16:05.4661514</LastUpdated>

    <TargetPath>..\{category}\{appname:regexreplace:([\s\t\r\n\-\\&\/]+):_}-{version}.{url:ext}</TargetPath>

    <FixedDownloadUrl>{dl}</FixedDownloadUrl>

    <Name>iPod Touch <placeholder name="iPod Touch Version?" value="6G" options="5G|6G" /></Name>

    </ApplicationJob>

    </Jobs>

    iPod-Touch.xml

  7. $WShell = New-Object -ComObject WScript.Shell
    $ShortCut = $WShell.CreateShortcut("$env:AppData\Microsoft\Internet Explorer\Quick Launch\$($App.Name).lnk")
    $Shortcut.TargetPath = "$env:SystemDrive\$($App.Name)\$($App.Name).exe"
    $Shortcut.WorkingDirectory = "$env:SystemDrive\$($App.Name)"
    $Shortcut.IconLocation = "imageres.dll,-65"
    $Shortcut.Save()
    

    That's an example from to the wiki. To access the variables use $App.Variables.{"myvariable"}.TextualContent for Text variables and $App.Variables.{"myvariable"}.CachedContent

  8. It occurs to me that if I use the notes field I won't be able to parse the field for structured data. That is, since it's a "property" I can't perform functions on it such as regex or for other stuff. Is it possible to perform functions on a native property somehow for the custom columns functionality?

  9. Since you're using the version number in the filename you could use a file exists check to perform a pre-check for the version so you can enable "ignore previous file" and manually process version data before downloading. Here's a vapor-code sample:

     

     

    if exist "\Installer\JGSoft\{appname} {Version} [NAME REMOVED].exe" exit 2
    wget ...
    

     

    This will exit before attempting to download if the version-specific download file already exists. If it doesn't then it will proceed to the download.

  10. I needed to download via torrent myself for something this week, so figured I'd share my process. I downloaded the aria2 client and put it in my path. This will allow you to use the aria2c app from Ketarin. You could put it in the Ketarin folder for the same effect. You can find aria2 for win32 and win64 in the online app database.

     

    Next, in your Ketarin app profile download the Torrent file as the payload.

     

    Next, in the post-download box use the following command to download the contents of the Torrent.

     

    aria2c --bt-require-crypto=true --seed-time=0 --dir="{file:directory}" --torrent-file="{file}"
    

     

    Be aware that the files from the torrent WILL NOT be managed by Ketarin's "always delete previously downloaded file" option. The only thing that will be maintained by this feature is the torrent file itself, so if you want to manage the included files as well a way around that would be to put the resulting files into a child folder. Something like this:

     

    rd /s /q "{file:directory}\myTorrentStuff"
    mkdir "{file:directory}\myTorrentStuff"
    aria2c --bt-require-crypto=true --seed-time=0 --dir="{file:directory}\myTorrentStuff" --torrent-file="{file}"
    

     

    I have successfully used this method now with a couple different torrent-based downloads within Ketarin. It works. Spiffy. :)

  11. <?xml version='1.0' encoding='utf-8'?>
    <Jobs>
      <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <WebsiteUrl>http://www.iclarified.com/8500/where-to-download-ipad-firmware-files-from</WebsiteUrl>
        <UserAgent />
        <UserNotes />
        <LastFileSize>0</LastFileSize>
        <LastFileDate xsi:nil="true" />
        <IgnoreFileInformation>false</IgnoreFileInformation>
        <DownloadBeta>Default</DownloadBeta>
        <DownloadDate xsi:nil="true" />
        <CheckForUpdatesOnly>false</CheckForUpdatesOnly>
        <VariableChangeIndicator>version</VariableChangeIndicator>
        <HashVariable />
        <HashType>None</HashType>
        <CanBeShared>true</CanBeShared>
        <ShareApplication>false</ShareApplication>
        <ExclusiveDownload>false</ExclusiveDownload>
        <HttpReferer />
        <SetupInstructions />
        <Variables>
          <item>
            <key>
              <string>schangelog</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>Textual</VariableType>
                <Regex />
                <TextualContent />
                <Name>schangelog</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>swebsite</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>Textual</VariableType>
                <Regex />
                <TextualContent>http://www.iclarified.com/8500/where-to-download-ipad-firmware-files-from</TextualContent>
                <Name>swebsite</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>snotes</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>Textual</VariableType>
                <Regex />
                <TextualContent />
                <Name>snotes</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>spc</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>Textual</VariableType>
                <Regex />
                <TextualContent />
                <Name>spc</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>version</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>RegularExpression</VariableType>
                <Regex>>([\d\.]+) \({appname}\):</Regex>
                <Url>http://www.iclarified.com/8500/where-to-download-ipad-firmware-files-from</Url>
                <Name>version</Name>
              </UrlVariable>
            </value>
          </item>
          <item>
            <key>
              <string>dl</string>
            </key>
            <value>
              <UrlVariable>
                <RegexRightToLeft>false</RegexRightToLeft>
                <VariableType>RegularExpression</VariableType>
                <Regex>>{version} \({appname}\):[^"]+"(http[^"]+)"</Regex>
                <Url>http://www.iclarified.com/8500/where-to-download-ipad-firmware-files-from</Url>
                <Name>dl</Name>
              </UrlVariable>
            </value>
          </item>
        </Variables>
        <ExecuteCommand />
        <ExecutePreCommand />
        <ExecuteCommandType>Batch</ExecuteCommandType>
        <ExecutePreCommandType>Batch</ExecutePreCommandType>
        <Category>Updates\iOS</Category>
        <SourceType>FixedUrl</SourceType>
        <DeletePreviousFile>true</DeletePreviousFile>
        <Enabled>true</Enabled>
        <FileHippoId />
        <LastUpdated xsi:nil="true" />
        <TargetPath>..\{category}\{appname:regexreplace:([\s\t\r\n\-\\&\/]+):_}-{version}.{url:ext}</TargetPath>
        <FixedDownloadUrl>{dl}</FixedDownloadUrl>
        <Name>iPad 3 Wi-Fi</Name>
      </ApplicationJob>
    </Jobs>
    

    This template is a sample to demonstrate how to download the current build of iOS with Ketarin. This particular sample downloads the current build of iOS for the "iPad 3 Wi-Fi" hardware. You can change this to different hardware within the "application name" to make it parse the iClarified website for a different version. The name you give it MUST be a valid name (the stuff between parentheses on the website), or it will fail. You can't change it for cosmetic differences. You can't change it to "fix" how you want Wi-Fi to be spelled or to change underscores to dashes and so on. It's a string match, so it MUST be exactly the same as what appears on the site. If you want to download the iPad 4 CDMA version, then, you must use "iPad 4 GSM_CDMA". Have fun!

  12. https://downloads.sourceforge.net/project/{projectstub}/{releasepath}/{releasefile}
    

    Yes, of course. There are also several SourceForge specific templates you can use to ease the process of downloading from SourceForge. SF uses a UA filter to either load a landing page or a direct file when requested. If you use curl or any other command line client as the user-agent (UA) with the above pattern you'll get the file. Look in the templates section of the forum to see other examples.

  13. Download SwithMail and put it in your path:

    http://www.tbare.com/software/swithmail/

     

    File, Settings, Commands, "Before updating an application". Set the Command type to "Batch script". Enter the following in the command box:

    swithmail.exe /s /from "sender@example.com" /pass "YourPassword" /server smtp.example.com /p 465 /ssl /toaddress "mickythekiller@example.com" /subject "Ketarin update {appname:replace:&:^&}" /body "{appname:replace:&:^&} {version:replace:&:^&}"
    

    If you want to send yourself a *list* of all the updates instead of send yourself a new message for each one, then generate a list first (with "echo {appname:replace:&:^&} {version:replace:&:^&}>>c:\path\file.ext")  and use /bodytxt "c:\path\file.ext" to embed the contents of the file with the "after updating all applications" command.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.