progress-4gl
ओएस-उपयोगिताओं
खोज…
परिचय
ऑपरेटिंग सिस्टम तक पहुंचने के लिए फ़ंक्शन और स्टेटमेंट में कई अंतर्निहित हैं।
ओएस कमान
ओएस-कमांड निष्पादित करता है।
बिना किसी विकल्प के OS-COMMAND एक नया शेल शुरू करेगा और इससे बाहर नहीं निकलेगा - इस प्रकार आप ग्राफिकल OS पर होंगे: es एक विंडो "हैंगिंग" छोड़ दें।
DEFINE VARIABLE cmd AS CHARACTER NO-UNDO.
cmd = "dir".
OS-COMMAND VALUE(cmd).
तीन विकल्प हैं: SILENT
, NO-WAIT
और NO-CONSOLE
।
चुप
एक ऑपरेटिंग सिस्टम कमांड को संसाधित करने के बाद, एवीएम शेल रोक देता है। Windows GUI प्लेटफार्मों में विंडो से बाहर निकलने के लिए, आपको बाहर निकलना होगा। विंडोज चरित्र प्लेटफार्मों में खिड़की से बाहर निकलने के लिए, आपको बाहर निकलना होगा और RETURN या SPACEBAR दबाएं। आप इस ठहराव को खत्म करने के लिए साइलेंट विकल्प का उपयोग कर सकते हैं। इस विकल्प का उपयोग केवल तभी करें जब आप सुनिश्चित हों कि प्रोग्राम, कमांड या बैच फ़ाइल स्क्रीन पर कोई आउटपुट उत्पन्न नहीं करती है। NO-WAIT के साथ उपयोग नहीं किया जा सकता है।
OS-COMMAND SILENT VALUE("runprogram.exe").
इंतज़ार नही
मल्टी-टास्किंग वातावरण में, ऑपरेटिंग सिस्टम कमांड को समाप्त करने के लिए इंतजार किए बिना OS-COMMAND के बाद AVM तुरंत नियंत्रण वापस पास करने का कारण बनता है। साइलेंट के साथ उपयोग नहीं किया जा सकता। यह विकल्प केवल विंडोज में समर्थित है।
OS-COMMAND NO-WAIT VALUE("DIR > dirfile.txt").
लिनक्स / यूनिक्स पर आपको इसके बजाय &
#sign के साथ कमांड को पूर्व में प्राप्त करना होगा:
OS-COMMAND VALUE("ls >> file.txt &").
नो-कंसोल
ऑपरेटिंग सिस्टम कमांड को संसाधित करते समय, एवीएम एक कंसोल विंडो बनाता है। कंसोल विंडो को कमांड निष्पादित होने के बाद साफ नहीं किया जा सकता है। आप इस विंडो को पहली बार में बनाए जाने से रोकने के लिए NO-CONSOLE विकल्प का उपयोग कर सकते हैं।
OS-COMMAND NO-CONSOLE VALUE("startbach.bat").
OS-COMMAND
से प्रगति ABL में कोई त्रुटि कभी नहीं लौटी है, इसलिए आपको त्रुटियों के लिए दूसरे तरीके से जांचना होगा, संभवतः उन्हें शेल-स्क्रिप्ट या इसी तरह की फ़ाइल में लिखना होगा।
OPSYS
OPSYS
देता है कि ओएस किस प्रोग्राम पर चल रहा है:
MESSAGE OPSYS VIEW-AS ALERT-BOX.
परिणाम:
इसका उपयोग यह चुनने के लिए किया जा सकता है कि कॉल करने के लिए ओएस-उपयोगिता क्या है:
IF OPSYS = "LINUX" THEN
OS-COMMAND VALUE("ls -l").
ELSE
OS-COMMAND VALUE("dir").
ओएस-त्रुटि
पिछले OS-*
से एक त्रुटि देता OS-*
पूर्णांक द्वारा दर्शाया गया कॉल। OS-ERROR पर लौट सकने वाली कॉल हैं:
- ओएस-APPEND
- ओएस-कॉपी
- ओएस-create-DIR
- ओएस-Delete
- ओएस नाम बदलें
- CACHE को सेव करें
ध्यान दें कि OS-COMMAND
गायब है। आपको स्वयं OS-COMMAND में त्रुटियों को संभालने की आवश्यकता है।
त्रुटि संख्या | विवरण |
---|---|
0 | कोई त्रुटि नहीं |
1 | मालिक नहीं |
2 | ऐसी कोई फ़ाइल या डायरेक्टरी नहीं है |
3 | बाधित सिस्टम कॉल |
4 | I / O त्रुटि |
5 | खराब फाइल नंबर |
6 | और कोई प्रक्रिया नहीं |
7 | पर्याप्त कोर मेमोरी नहीं |
8 | अनुमति नहीं मिली |
9 | बुरा पता |
10 | फाइल मौजूद है |
1 1 | ऐसा कोई उपकरण नहीं |
12 | डायरेक्टरी नहीं |
13 | एक निर्देशिका है |
14 | फ़ाइल तालिका अतिप्रवाह |
15 | बहुत सारी खुली हुई फाइलें |
16 | बहुत बड़ी फाइल |
17 | डिवाइस पर जगह समाप्त |
18 | निर्देशिका खाली नहीं है |
999 | अनमैप त्रुटि (ABL डिफ़ॉल्ट) |
OS-GETENV फ़ंक्शन
किसी भी OS वातावरण चर का मान लौटाता है।
MESSAGE OS-GETENV ("OS") VIEW-AS ALERT-BOX.
विंडोज मशीन पर:
MESSAGE OS-GETENV ("SHELL") VIEW-AS ALERT-BOX.
वर्तमान शेल के रूप में बैश के साथ एक लिनक्स मशीन पर परिणाम:
┌────── Message ───────┐
│ /bin/bash │
│ ──────────────────── │
│ <OK> │
└──────────────────────┘
ओएस-कॉपी
एक फ़ाइल की प्रतिलिपि बनाएँ
COPY स्रोत-फ़ाइल लक्ष्य-फ़ाइल
c:\temp\source-file.txt
को c:\temp\target-file.txt
कॉपी करें। सफलता या इसके अभाव के लिए आपको OS-ERROR
जांच करनी होगी।
OS-COPY VALUE("c:\temp\source-file.txt") VALUE("c:\temp\target-file.txt").
IF OS-ERROR <> 0 THEN DO:
MESSAGE "An error occured" VIEW-AS ALERT-BOX ERROR.
END.
ओएस-Delete
फ़ाइल, या फ़ाइल-ट्री हटाता है।
कई अन्य OS- * उपयोगिताओं के साथ, आपको OS-ERROR
में स्थिति की जांच करनी होगी।
OS-DELETE फ़ाइल या डीर-टू-डिलीट [RECURSIVE]
संपूर्ण /tmp/dir
ट्री हटाएं:
OS-DELETE VALUE("/tmp/dir") RECURSIVE.
c:\dir\file.txt
नामक फ़ाइल को हटाएँ
OS-DELETE VALUE("c:\dir\file.txt").
ओएस-create-DIR
एक निर्देशिका बनाता है, स्थिति OS-ERROR
OS-CREATE-DIR निर्देशिका
/usr/local/appData
नामक एक निर्देशिका बनाएँ
OS-CREATE-DIR VALUE("/usr/local/appData").
ओएस-APPEND
एक फ़ाइल को दूसरे में जोड़ें। स्थिति की जाँच OS-ERROR
OS-APPEND स्रोत का लक्ष्य
targetfile.txt
साथ targetfile.txt
को sourcefile.txt
:
OS-APPEND VALUE("sourcefile.txt") VALUE("targetfile.txt").
ओएस नाम बदलें
फ़ाइल या निर्देशिका का नाम बदलें। स्थिति OS-ERROR
। फ़ाइलों को स्थानांतरित करने के लिए भी उपयोग किया जा सकता है (या स्थानांतरित करें और नाम बदलें)।
OS-RENAME पुराना नाम नया नाम
नाम /tmp/old-name
/tmp/new-name
:
OS-RENAME VALUE("/tmp/old-name") VALUE("/tmp/new-name").
फ़ाइल को c:\temp\old.txt
से c:\new-dir\old.txt
:
OS-RENAME VALUE("c:\temp\old.txt") VALUE("c:\new-dir\old.txt").
OS-DRIVES (केवल Windows)
किसी सिस्टम पर सभी ड्राइव की सूची देता है।
MESSAGE OS-DRIVES VIEW-AS ALERT-BOX.
चार ड्राइव के साथ परिणाम, सी एफ के माध्यम से:
लिनक्स पर सूची केवल खाली होगी क्योंकि परिभाषाएँ "ड्राइव" से जुड़ी नहीं हैं। लिस्टिंग निर्देशिका दूसरे तरीके से की जाती है ( INPUT FROM OS-DIR
)