Script Commands for Windows Desktop Classic Devices

Use the options and examples below to help you create your own powerful script commands.

Note: Not all script commands are compatible with all devices within a platform. Limitations are noted in the table entries.


Format Meaning
text Enter the command exactly as shown.
text Replace with the requested information.
[text] Information contained within square brackets is optional to the command.
text|text Choose one of the options separated by the vertical pipe.


Command Syntax

Halts the installation of a package and forces the installation status in the SOTI MobiControl console to report "Failed" when used in a SOTI MobiControl pre-install script.

See Using Package Studio for more information.


When used in a SOTI MobiControl pre-sync script, it stops the file synchronization process.

See Using File Sync Rules for more information.



To abort file synchronization if the first octet of the device's IP address is 169 (when the IP is in the form

set firstoctet=ipoctet %IP% 1

if %firstoctet%==169 abortsync


Displays or changes file attributes.

attrib [+R | -R] [+A | -A] [+S | -S] [+H | -H] [drive:][path][filename]


  • + sets an attribute
  • - clears an attribute
  • R is the read-only file attribute
  • A is the archive file attribute
  • S is the system file attribute
  • H is the hidden file attribute


To archive a file:

attrib +A 1:\database_info.txt


Changes the current directory.

cd [directory]


To change to the Chocolate directory:

cd Chocolate


Imports a user-specified certificate of X.509 type, which could be either DER or Base64 encoded.

certimport -cert "filepath" -stype "storagetype" -storage "Storage"


  • filepath is the relative or absolute path of the certificate (.cer) file to import.
  • storagetype is the type of storage into which to import the certificate. Not all operating systems support all of the available options:
    • CSSCS is the current system service certificate storage
    • CSSCU is the current user certificate storage
    • CSSCUGP is the current user group policy certificate storage
    • CSSLM is the local machine certificate storage
    • CSSLME is the local machine enterprise certificate storage
    • CSSLMGP is the local machine group policy certificate storage
    • CSSS is the system services certificate storage
    • CSSU is the user's certificate storage
  • storage is the storage location into which to import the certificate. Not all operating systems support all of the available options
    • MY is the personal user certificate storage
    • ROOT is the root certificate storage.
    • CA is the certificate authority certificate storage
    • Trust is the trusted certificate storage
    • SPC is the software publisher certificate storage


To import a certificate test.cer into current user storage of "MY" type:

certimport -cert "test.cer"

To import a certificate test.cer into root user storage of the local machine:

certimport -cert "test.cer" -storagetype "CSSLM" -storage "ROOT"


Clears the device screen.


Copies one or more files to another location.

On Windows Mobile/CE and Desktop Classic devices, files can be copied between desktop computers and mobile devices.

On Android devices, files can only be copied locally.

copy source destination


To copy all files with the extension .txt from the C:\ to the temp directory on the device:

C:\tempt\*.txt 1:\temp


Deletes one or more files.

del filename


To delete example.txt in the current directory:

del example.txt

To delete all files with the extension .tmp in the current directory and its subfolders:

del *.tmp


Displays a list of files and subdirectories in a directory.

dir [drive:][path][directoryName]


To list the files in the Temp directory of the device:

dir 1:\Temp\


Displays messages or switches command echoing on or off.

echo [on | off] or echo message


To turn command echoing off:

echo off

To turn command echoing on:

echo on

To display the message "Copying Files ...":

echo Copying Files ...


Closes the remote help desk application window.


Finds a file on the device.

find [/S] [filename]

Where /S applies the search to any subfolders


To search for all files with a .txt file extension including subfolders:

find /S *.txt


Finishes the current script without processing the rest of the package and reports package installation as successful to the deployment server. This is useful particularly in packages that involve wiping a device. This script command can be used to skip reinstalling the package but still report back as successfully installed to the deployment server.

If a hard reset is initiated from a package's post-install script, the entire package will reinstall after the reset. A check can be included in the pre-install script that determines whether the package's files have already been installed.

Note: This command is not useful as a script command in and of itself but in the event of a package that involves a cold boot.


"1:\PersistentStorage\subfolder" finishpkg

For platforms that support the if command, you use finishpkg conditionally: If a package's post-install script contains:

md "1:\PersistentStorage\subfolder"reset /w

then the pre-install script could contain a check to prevent the package from being reinstalled endlessly:

if exist "1:\PersistentStorage\subfolder" finishpkg


Directs script execution to a labelled line in a script.

Only use this command in scripts.

goto label


To go to label ":end"

copy *.* 1:\tmp

goto end



help or ?

Displays a list of the commands supported and a brief description of each command.


Performs conditional actions if the specified conditions are found.

See The if Command for more information


Returns the specified octet of an IP address and saves it to an environment variable, when called from within a SOTI MobiControl device script.

ipoctet IPAddress octetNumber


To save the value of the fourth octet of an IP address to the environment variable myOctet:

set myOctet=ipoctet 4 This gives myOctet the value 225

To save the value of the first octet of the device's IP address to an environment variable in a device script:

set myOctet=ipoctet %IP% 1 This gives myOctet the value 192 if the IP address is of the form 192.XXX.XXX.XXX


Terminates a process that is currently running on the device.

kill executable


To terminate the pword.exe process on the device:

kill pword.exe


Activates the lockscreen on a device for the specified number of minutes.

Note: Minimum time is one minute.
lockdevice minutes


To lock a device for 1 minute

lockdevice 1


Sends a customs message to the SOTI MobiControl deployment server from the device. This message appears in the Logs tab of the Device Information panel in the SOTI MobiControl console.

log type message

Where type is the type of the associated message and the options are:

  • -e for Error
  • -w for Warning
  • -i for Information


To send a notification to the SOTI MobiControl console at certain intervals during a software push:

Note: Put the command in the pre-install script

log -i "Starting Software Push"

mkdir or md

Creates a new directory.

mkdir [drive:] path


To create a directory named "test" from the current directory:

mkdir test

To create test\test1\test2\test3 recursively:

mkdir test \test1 \test2 \test3


Moves a file from specified source location to specified destination location.

Note: You can rename the file at the same time by specifying a name for the destination filename.
move [sourceFilePath] filename destinationFilePath [filename]


To move the file test.bat:

move test.bat 2:\

move test.bat 2:\test.bat

To move and rename a file at the same time:

move 1:\test.bat 2:\test2.cmd

To move folder to root folder:

move Mars /


Prompts device user and waits for user input to continue.



To show "Press any key to continue..." on the device screen:



Lists the running processes on the device.


Deletes a key from registry on a device.

regdelkey registryKey


To delete registry key HKEY_CLASSES_ROOT\.2bp: :

regdelkey HKEY_CLASSES_ROOT\.2bp:


Deletes a value from the registry on a device.

regdelval registryKey valueName


To delete registry value HKEY_CURRENT_USER\Start\test:

regdelval HKEY_CURRENT_USER\Start\test


Imports a registration file to the registry on the device.

regload registryFilePath


To import registration file c:\test.reg to the device's registry:

regload c:\test.reg


Exports the device registry subtree to a specified file.

regsave [-A | -U] [drive:] [path] filename subtree [regpath]


  • -A specifies that the output file is in the ANSI format
  • -U specifies that the output file is in the Unicode format
  • drive: specifies the drive location where the registry subtree will be saved
  • path specifies the file path to the directory where the registry subtree will be saved
  • filename specifies the filename where the registry subtree will be saved
  • subtree specifies which part of the device's registry to export to a file. Possible values are:
    • * specifies everything
    • HKCU specifies HKEY_CURRENT_USER
    • HKCR specifies HKEY_CLASSES_ROOT


To export the HKEY_LOCAL_MACHINE subtree from the device registry to a UNICODE file C:\hklm.reg:

regsave -U C:\hklm.reg HKEY_LOCAL_MACHINE


Adds a key or a value to registry on the device.

regset registryKey [valueName] [data]


To add a new key and two values to that key:

regset HKLM\software\apps testkey

regset HKLM\software\apps\testkey testvalue1 abc

regset HKLM \software \apps \testkey testvalue2 dword:123


Inserts a comment line in a script/batch file.

rem [comment]


To add a comment about pumpkins:

rem The pumpkins are looking great this harvest


Renames a file or folder.

rename sourceFilename destinationFilename


To rename the file test.txt to test.bak:

rename test.txt test.bak


Changes all occurrences of a particular character or string in the specified file to a new character or string.

replacetxt filename string/characterToReplace newString/Character


To replace the "Device" string with the "Psion" string in the file My Device.txt in the temp folder:

replacetxt "\Temp\My Device.txt" Device Psion


Performs a soft or hard reset of the device.

reset [/S | /H | /W | /E] [/delaysec]


  • /S is the default option and soft resets the device. Any desktop remote control sessions will also be terminated.
  • /H is used to hard reset a device running on the Windows Pocket PC or Windows CE platforms. It clears any data stored in the volatile memory. On Windows Mobile 5.0 and later devices this is equivalent to a soft reset. The real-time clock may also reset depending on the device make and model.
  • /W is used to wipe data stored on the device and reset the device to factory default settings.
    Note: The wipe command is only supported on the Windows Mobile 5 operating system with AKU2 or later and newer versions of Windows Mobile.
  • /E is used to wipe data stored on the device and its external storage as well as reset the device to factory default settings.
  • /P is used to bypass factory reset protection. It is only supported on Android Enterprise Work Managed devices.

On Android Plus devices it is possible to specify a /delay parameter (in seconds): reset /S /delay 10

If /delay parameter is not defined, the default value is 5 seconds


To soft reset a device:

reset /S

To reset an Android Plus device to its factory settings in 30 seconds:

reset /E /delay 30

rmdir or rd

Deletes a directory.

rmdir [/S] path

Where /S removes any subdirectories

On Android Plus and Linux devices, this command requires the /S option and will delete the specified item whether it is a directory or a file.


To remove an empty directory named "test" from the current directory:

rmdir test

To remove a directory named "test" and all of its contents from the current directory:

rmdir /S test

To provide location:

rmdir /mnt/sdcard/test


Sets, edits or shows values of environment variables.

set [environmentVariable] [=|++|--] [string]


  • set used alone, lists all environment variables
  • = deletes the environment variable it is used with
  • ++ increases the value of the specified environment variable. The variable must have an integer value.
  • -- decreases the value of the specified environment variable. The variable must have an integer value.

You can also use set to set the value of an environment variable to the string returned by the substring command:

set environment variable=substring "string" startposition [numberOfCharacters]"


To display all environment variables:


To set the value of the environment variable Var1 to test:

set Var1=test

To set the value of environment variable Var2 to test:

set Var2=substring testing 1 4


Launches the registered application for the given file extension.

shellexecute filepath -verb [-wseconds]


  • -verb is the action you want the shell to execute
  • -w tells the command to wait for the specified length of time (in seconds) before executing


To launch the registered application for the given file extension:

shellexecute 1:\temp\temp.upg -open then shellexecute 1:\temp\temp.upg -run -w5


Displays a message box on the device screen.

Note: The Android Plus agent has the following limitations:
  • It does not support a complex showmessagebox that contains more than one command
  • It cannot return the user response
  • It does not support "if" and related keywords
showmessagebox message [timer] [type] [default button] [action]


  • message is the message displayed in the message box. Use quotation marks (" ") if there are spaces in the message.
  • [timer] is the number of seconds until the message box disappears automatically. If you omit a timer value or add the keyword NO_TIMER, the message box will persist until the device user dismisses it.
  • [type] is type of of message box. Options are:
    • 1 displays an information window with an OK button
    • 2 displays a question window with Yes and No buttons
    • 3 displays a warning window with an OK button
    • 4 displays a question window with OK and Cancel buttons
    • 5 displays an error window with an OK button
  • [default button] sets the default buttons for message box types 2 (YES | NO) or 4 (OK | CANCEL)
  • NOTIFY_DEVICE notifies the device user of the message, depending on the notification settings applied to the device. That is, devices set to ring, will ring, set to vibrate, will vibrate, and muted devices will have no notification. Only supported on Android Plus devices with agents 14.0.0 or later.

The return values for the showmessagebox are stored in a global variable, ShowMessageBoxReturn This variable can be used in scripts as %ShowMessageBoxReturn% to execute actions based on user response. Possible return values are IDYES, IDNO, IDOK, IDCANCEL. The value for this global variable does not change if the type is not 2 or 4.


To show a simple message:

showmessagebox "This is a test message"

To provide device information using a macro:

showmessagebox "Your device's IP address is %IP%"

To set a 3 second timer to your message:

showmessagebox "This is a test message with a 3 second timer" 3

To add YES and NO buttons to your message box with no timer

showmessagebox "This is a test message with Yes/No button and no timer" NO_TIMER 2

To provide followup actions to a user response to message box:

showmessagebox "Abort the operation?" NO_TIMER 2 YES
if %ShowMessageBoxReturn% == IDYES goto Exit

Initiates sleep mode on the device for a set period. Only use this command in scripts.

sleep [length]

Where length is in seconds


To set the device to sleep for 5 seconds:

sleep 5


Initiates sleep mode on the device for a set period. Only use this command in scripts.

sleep [length]

Where length is in milliseconds


To set the device to sleep for 3.5 seconds:

sleep 3500


Starts a program on the device. When the /wait option is specified, the script processor waits for the initiated program to terminate before executing the next command in the script.

start [/wait] program
Note: On Windows devices, program must be enclosed in quotation marks.


To start Pocket Word and wait until it is terminated:

start /wait "\software\apps\pword.exe"


Shuts down the device. You can specify a delay (in milliseconds) before shutdown.

turnoff [time]


To turn off the device in 3.5 seconds:

turnoff 3500


Displays the contents of a Unicode text file.

type filename


To display the contents of the file test.cmd:

type test.cmd


Saves or deletes specified settings on a device.

See The writeprivateprofstring Command for more information.


Writes a string into the specified section of an initialization file.

writeprofstring filename section [key] [value]


  • filename is the name of the .ini file
  • section is the section in the .ini file where the value will be written. The name of the section is case-sensitive.
  • key is the name of the key. If the key does not exist in the specified section, it is created. If this parameter is not included, the entire section, including all entries within it, is deleted.
  • value is the string to be written to the file. If this parameter is not entered, the key is deleted

Use quotations (" ") if either the key or the value contains spaces.


To set the Color key in the "Video" section of the \Movie\mov.ini file to a value of "Red":

writeprofstring \Movie\mov.ini Video Color Red