Определить названия файла.

Больше
23 март 2017 13:07 #1 от m_2602
COM_KUNENA_MESSAGE_CREATED_NEW
Мне нужно просто взять названия файла и присвоит ее к переменной процедуры.
Делаю таким образом:
def var t as char.
OS-COMMAND VALUE("s=`find /usr2/bis/t/dp/zk/ -name '*.xml' `").
t = OS-GETENV ("s").
но без безрезультатно.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
24 март 2017 09:43 #2 от alex_sar
COM_KUNENA_MESSAGE_REPLIED_NEW
Вы хотите в заданном каталоге прочитать все файлы?
Если да, то посмотрите вот такой вариант:
{os-dir.pro}
RUN read-dir(in-dir, in-mask, file-list).
Спасибо сказали: m_2602

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
24 март 2017 12:13 #3 от m_2602
COM_KUNENA_MESSAGE_REPLIED_NEW
Обязательно попробую, но я сделал немного иначе:
Создал отдельный скрипт
OS-COMMAND VALUE("/usr2/bis/t_scr_mtn/coprename.sh").
Содержания скрипта
j=0;
for i in /usr2/bis/t_impexp/zk/iabs*.xml;
do let j+=1;
cp $i /usr2/bis/t_impexp/zk/file$j.xml ;
done
Создал копию файла, оставив оригинал и получил то что хотел.
Но есть маленький неудобный момент, после выполнение этой команды OS-COMMAND... вылезает сообщение на экране Press space bar to continue, т.е. каждый раз когда я использую ОС-команды приходиться нажимать ENTER для продолжение процедуры. Не знаю как обойти эту ситуацию.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
24 март 2017 12:20 #4 от alex_sar
COM_KUNENA_MESSAGE_REPLIED_NEW
Все же посмотри то, что я вам показал...
Попробуйте после OS-COMMAND:
PAUSE(0).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
30 март 2017 12:12 #5 от Arelav
COM_KUNENA_MESSAGE_REPLIED_NEW

m_2602 пишет: Но есть маленький неудобный момент, после выполнение этой команды OS-COMMAND... вылезает сообщение на экране Press space bar to continue, т.е. каждый раз когда я использую ОС-команды приходиться нажимать ENTER для продолжение процедуры. Не знаю как обойти эту ситуацию.


Используйте опцию SILENT.
Из документации:

SILENT
After processing an operating system command, the AVM shell pauses. To exit the window in Windows GUI platforms, you must type exit. To exit the window in Windows character platforms, you must type exit and press RETURN or SPACEBAR. You can use the SILENT option to eliminate this pause. Use this option only if you are sure that the program, command, or batch file does not generate any output to the screen. Cannot be used with NO-WAIT.


Но, ИМХО, в unix-системах лучше вместо OS-COMMAND использовать UNIX:

UNIX statement

Runs a program, UNIX command, or UNIX script, or starts a UNIX interactive shell to allow interactive processing of UNIX commands.

Syntax
UNIX [ SILENT ] [ command-token | VALUE ( expression ) ] ...

SILENT
After processing a UNIX statement, the AVM shell pauses and prompts you to press SPACEBAR to continue. You can use the SILENT option to eliminate this pause. Use this option only if you are sure that the UNIX program, command, or batch file does not generate any output to the screen.

Спасибо сказали: m_2602

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.094 секунд