我對Progress仍然很陌生,並且對「Unix」命令有疑問。進度UNIX命令和變量行爲
我有一個存儲unix命令的數據庫,在這種情況下,他們都是打印命令。我一直在撰寫搜索表單來查找用戶在過去幾周打印的項目。在找到他們想要的項目後,用戶應該能夠重新打印該作業。它工作,直到我重新運行命令。
UNIX SILENT tCMD。
會在shell中逐字運行「tCMD」,而不是變量的值。也許我在這裏錯過了一些基本的東西,但我不確定爲什麼單獨的Unix命令似乎沒有工作,我喜歡它。
我對Progress仍然很陌生,並且對「Unix」命令有疑問。進度UNIX命令和變量行爲
我有一個存儲unix命令的數據庫,在這種情況下,他們都是打印命令。我一直在撰寫搜索表單來查找用戶在過去幾周打印的項目。在找到他們想要的項目後,用戶應該能夠重新打印該作業。它工作,直到我重新運行命令。
UNIX SILENT tCMD。
會在shell中逐字運行「tCMD」,而不是變量的值。也許我在這裏錯過了一些基本的東西,但我不確定爲什麼單獨的Unix命令似乎沒有工作,我喜歡它。
嘗試
UNIX SILENT VALUE(tCMD).
一些背景:有些東西正在被硬編碼,如文件名輸入或輸出,例如,或UNIX的價值命令(UNIX嘗試LS,你會得到一個即使它不是一個變量或用引號括起來,結果仍然是解釋者「知道」你想要做什麼)。這是其中一例。正如我所說的,它也適用於輸入/輸出操作,例如INPUT FROM cMyFile。如果cMyFile是一個變量,那麼我應該在代碼
INPUT FROM VALUE(cMyFile).
謝謝,這就是我一直在尋找的!過去我實際上已經對一些unix命令進行了硬編碼,但是我不知道你可以使用文件名來做到這一點。 – Hermano23
查找到OS-COMMAND
語句而不是UNIX
。它將幫助你編寫更多可移植的代碼(即使當然,發佈給操作系統的實際命令也需要適合你的特定操作系統)。
也有一些建在最好使用(因爲保持兼容的),而不是通過OS-COMMAND
,UNIX
或DOS
發出命令的命令:
To copy a file:
OS-COPY source target
To delete a file:
OS-DELETE file
To rename a file:
OS-RENAME source target
To append a file with another (ie cat):
OS-APPEND source target
To create a directory:
OS-CREATE-DIR directory
To delete a file or directory:
OS-DELETE file [RECURSIVE]
To get an environment variable
OS-GETENV variable
To list attached drives (windows only):
OS-DRIVES
To list files in a directory you should do:
INPUT FROM OS-DIR directory.
If an error occurs in an OS-* command you can use OS-ERROR to check for the
error.
一般的文件和目錄,並命令在這些語句可以解決與
file.txt
或
VALUE("file.txt").
還可以查看OPSYS
函數,該函數將返回您當前所在的操作系統。
所以,如果你想在一個變量中存儲一個命令,你可以使用VALUE。我總是使用VALUE,因爲我認爲它更具可讀性。
DEFINE VARIABLE cCommand AS CHARACTER NO-UNDO.
IF OPSYS = "UNIX" THEN
ASSIGN
cCommand = "ls -l".
ELSE
ASSIGN
cCommand = "dir".
OS-COMMAND VALUE(cCommand).
如果您可以使用其中一個OS- *語句執行操作,那麼該操作比操作系統的操作效率高得多。 –
我想我應該包括tCMD等於「lp -dp81 example.pdf」,或類似的東西。 – Hermano23