Difference between revisions of "Os.execute"

From GiderosMobile
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
<languages />
+
'''Available since:''' Gideros 2011.6<br/>
'''<translate>Available since</translate>:''' Gideros 2011.6<br/>
+
'''Class:''' [[os]]<br/>
'''<translate>Class</translate>:''' [[Special:MyLanguage/os|os]]<br/>
+
 
=== <translate>Description</translate> ===
+
=== Description ===
<translate>This function is equivalent to the C function system. It passes command to be executed by an operating system shell. It returns a status code, which is system-dependent. If command is absent, then it returns nonzero if a shell is available and zero otherwise.</translate>
+
This function is equivalent to the C function system. It passes command to be executed by an operating system shell. It returns a status code which is system-dependent. If command is absent then it returns nonzero if a shell is available and zero otherwise.
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
(number) = os.execute(command)
 
(number) = os.execute(command)
</source>
+
</syntaxhighlight>
=== <translate>Parameters</translate> ===
+
 
'''command''': (string) <translate>command to execute</translate> <br/>
+
=== Parameters ===
=== <translate>Return values</translate> ===
+
'''command''': (string) command to execute<br/>
'''<translate>Returns</translate>''' (number) <translate>status code</translate><br/>
+
 
 +
For Windows you can check:
 +
* '''https://learn.microsoft.com/en-gb/windows-server/administration/windows-commands/windows-commands'''
 +
 
 +
=== Return values ===
 +
'''Returns''' (number) status code<br/>
 +
 
 +
=== Examples ===
 +
'''Opens a folder (windows 10)'''
 +
<syntaxhighlight lang="lua">
 +
if application:getDeviceInfo() == "Windows" then
 +
local lfs = require "lfs"
 +
-- go to user/pictures folder
 +
lfs.chdir(application:get("directory", "pictures"))
 +
-- check if "my_new_folder" directory exists in user/pictures folder
 +
local islfsdir = lfs.chdir(lfs.currentdir().."\\".."my_new_folder")
 +
if not islfsdir then
 +
-- if doesn't exist then create it and go to it
 +
lfs.mkdir(lfs.currentdir().."\\".."my_new_folder")
 +
lfs.chdir(lfs.currentdir().."\\".."my_new_folder")
 +
end
 +
end
 +
-- opens a window of the current lfs dir
 +
os.execute("start "..lfs.currentdir())
 +
</syntaxhighlight>
 +
 
 +
'''Or if your path contains spaces'''
 +
<syntaxhighlight lang="lua">
 +
local path = "H:\\ShdowPLAY\\TMP\\Mafia Definitive Edition"
 +
--local path = "H:/ShdowPLAY/TMP/Mafia Definitive Edition" -- same
 +
os.execute("start \"\" \"" .. path .. "\"")
 +
</syntaxhighlight>
 +
 
 +
 
 +
'''Copies some files from folder to folder beyond a given date'''
 +
* see: '''https://learn.microsoft.com/en-gb/windows-server/administration/windows-commands/xcopy'''
 +
<syntaxhighlight lang="lua">
 +
os.execute("xcopy \rawdata \reports /d:12-29-1993")
 +
</syntaxhighlight>
  
 
{{Os}}
 
{{Os}}

Latest revision as of 14:32, 13 July 2023

Available since: Gideros 2011.6
Class: os

Description

This function is equivalent to the C function system. It passes command to be executed by an operating system shell. It returns a status code which is system-dependent. If command is absent then it returns nonzero if a shell is available and zero otherwise.

(number) = os.execute(command)

Parameters

command: (string) command to execute

For Windows you can check:

Return values

Returns (number) status code

Examples

Opens a folder (windows 10)

if application:getDeviceInfo() == "Windows" then
	local lfs = require "lfs"
	-- go to user/pictures folder
	lfs.chdir(application:get("directory", "pictures"))
	-- check if "my_new_folder" directory exists in user/pictures folder
	local islfsdir = lfs.chdir(lfs.currentdir().."\\".."my_new_folder")
	if not islfsdir then
		-- if doesn't exist then create it and go to it
		lfs.mkdir(lfs.currentdir().."\\".."my_new_folder")
		lfs.chdir(lfs.currentdir().."\\".."my_new_folder")
	end
end
-- opens a window of the current lfs dir
os.execute("start "..lfs.currentdir())

Or if your path contains spaces

local path = "H:\\ShdowPLAY\\TMP\\Mafia Definitive Edition"
--local path = "H:/ShdowPLAY/TMP/Mafia Definitive Edition" -- same
os.execute("start \"\" \"" .. path .. "\"")


Copies some files from folder to folder beyond a given date

os.execute("xcopy \rawdata \reports /d:12-29-1993")