Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 09.05.2018
Сообщений: 26
1

Проблемы с командным файлом

09.12.2018, 19:39. Показов 508. Ответов 12
Метки нет (Все метки)

Здравствуйте! Есть следующее задание:
1. Вывести на экран текущую дату.
2. Установить текущим каталогом H:\LEX, если первым аргументом командного файла задан каталог LEX или lex.
3. Вывести содержимое всех TXT файлов текущего каталога на экран монитора.
4. Удалить в текущем каталоге файлы, заданные в качестве аргументов. Количество файлов заранее неизвестно.
Есть работающий командный файл на винде:

Кликните здесь для просмотра всего текста

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
@echo off
:menu
echo Нажмите 1 для вывода на экран текушей даты
echo Нажмите 2 для для перехода в каталог LEX (если он задан первым аргументом)
echo Нажмите 3 для вывода содержимого всех .txt файлов на экран монитора
echo Нажмите 4 для задания имени (имён) удаляемого (-ых) файла (-ов) и его (их) удаления
echo Нажмите 5 для выхода из программы
 
set /p var=Выберите команду:
if "%var%"=="1" (goto us1)
if "%var%"=="2" (goto us2)
if "%var%"=="3" (goto us3)
if "%var%"=="4" (goto us4)
if "%var%"=="5" (goto us5)
 
:us1
cls
date /t
pause
cls 
goto :menu
 
:us2
cls
if "%~1"=="LEX" (pushd h:\LEX)
if "%~1"=="lex" (pushd h:\LEX)
pause
cls
goto :menu
 
:us3
cls
type .\*.txt
pause
cls
goto :menu
 
:us4
cls
set /p var1=Введите имя удаляемого файла:
if "%var1%"=="" (goto :eof)
if exist "%var1%" (del /q %var1%)
pause
cls
goto :menu
 
:us5
cls
set /p namem=Нажмите Enter для выхода из программы
exit

И есть наработки по линуксу:

Кликните здесь для просмотра всего текста

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/bash
function date {
    message="$(date +"%y-%m-%d %T") $@"
}
function  lex {
clear
}
function showtxt {
clear
    cat .\*.txt
}
function del {
clear
    read -p "Введите имя удаляемого файла: " fname
    echo "Файл был удален"
    rm -R $fname
}
 
function menu {
clear
echo -e "Нажмите 1 для вывода на экран текушей даты"
echo -e "Нажмите 2 для для перехода в каталог LEX (если он задан первым аргументом)"
echo -e "Нажмите 3 для вывода содержимого всех .txt файлов на экран монитора"
echo -e "Нажмите 4 для задания имени (имён) удаляемого (-ых) файла (-ов) и его (их) удаления"
echo -e "Нажмите 5 для выхода из программы"
read -n 1 option
}
 
while [ $? -ne 1 ]
do
        menu
        case $option in
1)
        date ;;
2)
        lex ;;
3)
        showtxt ;;
4)
        del ;;
5)
        break ;;
esac
echo -en ""
read -n 1 line
done

Суть проблемы: в линуксе выполняется только 4 и 5 пункт, в 1 дату не выводит вообще никак, 2 уже пробовал кучу всякого, действую практически вслепую, ну и 3 явно не так написал. Пожалуйста, помогите кто чем может!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2018, 19:39
Ответы с готовыми решениями:

Работа с командным файлом. Математические операции
Что прописать, чтобы можно было возводить в отрицательную степень? Например 10^(-2). Вот скрипт...

Работа с командным файлом.
Здравствуйте, помогите пожалуйста написать bat файл, который в интерактивном режиме мог бы...

Проблемы с бинарным файлом
Приветствую. Проблема заключается в следующем: не хочет открываться бинарный файл. #include...

Проблемы с файлом css
Добрый день, в шаблоне требуется немного изменить стиль: изменить цвет меню и убрать картинку перед...

12
318 / 115 / 16
Регистрация: 07.10.2012
Сообщений: 524
11.12.2018, 11:26 2
Bash
1
2
vlad@vlad-VirtualBox ~ $ date
Вт дек 11 11:25:28 MSK 2018
0
1 / 1 / 0
Регистрация: 09.05.2018
Сообщений: 26
11.12.2018, 15:03  [ТС] 3
hitomy, через терминал и у меня всё работает. Когда запускаю через командный файл, то просто виснет всё.
P.S. У меня убунту на виртуалке, если что
0
3 / 2 / 3
Регистрация: 07.03.2018
Сообщений: 217
11.12.2018, 15:05 4
Bash
1
2
3
4
5
function date {
clear
echo "Текущая дата и время"
date
}
0
1 / 1 / 0
Регистрация: 09.05.2018
Сообщений: 26
12.12.2018, 21:04  [ТС] 5
Draka_za_edy, зациклено выводится-стирается сообщение, но дату так и не показывает
0
61 / 78 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
13.12.2018, 10:21 6
Правильный вывод
Bash
1
echo $(date)
Добавлено через 25 минут
Назови функцию date по другому. Вот так будет работать

Bash
1
2
3
4
5
function datenow {
echo $(date +"%y-%m-%d %T")
}
 
datenow
1
Модератор
Эксперт NIX
2787 / 2032 / 681
Регистрация: 02.03.2015
Сообщений: 6,509
13.12.2018, 15:31 7
Цитата Сообщение от Henior Посмотреть сообщение
Правильный вывод
Bash
1
echo $(date)
Нет, это неправильный. Правильный
Bash
1
date +"%y-%m-%d %T"
1
61 / 78 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
13.12.2018, 15:35 8
Мой вариант тоже рабочий
0
1 / 1 / 0
Регистрация: 09.05.2018
Сообщений: 26
13.12.2018, 16:34  [ТС] 9
Henior, Marinero, спасибо за помощь! А насчёт вывода аргументов командного файла не подскажете? В винде нужно было набрать эти параметры прямо при вызове командного файла, а тут как действовать и какой синтаксис использовать?
0
display "I'LL BE BACK"
1212 / 831 / 258
Регистрация: 02.04.2009
Сообщений: 3,109
14.12.2018, 01:00 10
Цитата Сообщение от Marinero Посмотреть сообщение
Правильный
А ещё лучше '%y-%m-%d %T' (что б содержимое не парсилось шеллом).
0
61 / 78 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
14.12.2018, 17:03 11
Цитата Сообщение от Heckelberry Посмотреть сообщение
Henior, Marinero, спасибо за помощь! А насчёт вывода аргументов командного файла не подскажете? В винде нужно было набрать эти параметры прямо при вызове командного файла, а тут как действовать и какой синтаксис использовать?
2 или 3 пункт?

Установить текущим каталог, команда
Bash
1
cd /H/LEX
вывести содержимое всех txt файлов
Bash
1
cat /folder/*.txt
0
1 / 1 / 0
Регистрация: 09.05.2018
Сообщений: 26
14.12.2018, 19:18  [ТС] 12
Henior, cat вываливает содержимое файлов одной кучей, причём без названий этих файлов... Но всё равно спасибо)
Я в общем вот как сделал:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
bash
cd Рабочий\ стол
function datenow {
reset
    date "+%d/%m/%y"
}
function  lex {
reset
    cd LEX
}
function showtxt {
reset
    more *.txt
}
function del {
reset
    read -p "Введите имя удаляемого файла: " fname
    echo "Файл был удален"
    rm -R $fname
}
 
function menu {
reset
echo -e "Нажмите 1 для вывода на экран текушей даты"
echo -e "Нажмите 2 для для перехода в каталог LEX"
echo -e "Нажмите 3 для вывода содержимого всех .txt файлов на экран монитора"
echo -e "Нажмите 4 для задания имени (имён) удаляемого (-ых) файла (-ов) и его (их) удаления"
echo -e "Нажмите 5 для выхода из программы"
read -n 1 option
}
 
while [ $? -ne 1 ]
do
        menu
        case $option in
1)
        datenow ;;
2)
        lex ;;
3)
        showtxt ;;
4)
        del ;;
5)
        break ;;
esac
echo -en ""
read -n 1 line
done
0
61 / 78 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
14.12.2018, 19:35 13
Можно такое меню через select реализовать
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2018, 19:35

Проблемы с .exe файлом
При запуске .exe файла выводит сообщение: "Версия этого файла несовместима с использованием...

Проблемы с XML файлом.
mr_dronski вы писали программку для Нади. Мне тоже нужно было такуюже написать, но там структура...

Проблемы с файлом resx
Проект не хочет компилироваться. Ошибка: не удалось обработать файл "Form.resx", так как он...

Проблемы с файлом offers.xml в УТ 10
После переустановки системы "Управление торговлей" редакция 10.3.18.4 возникли проблемы с записью...

Проблемы с файлом .htaccess, индексация в Яндексе
Приветствую! Нужно чтобы в индексе Яндекса были страницы только со слешем / наконце; правильно я...

Синий экран. Проблемы с файлом aswnet.sys
Довольно часто моя винда выдает мне синий екран, на котором пишет что у меня проблемы с файлом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru