Как добавить несколько команд insde single if loop в пакетных скриптах - PullRequest
0 голосов
/ 15 октября 2019

Можете ли вы сказать мне значение этого условия в Linux. Я должен преобразовать его в Bash

Я хотел добавить несколько команд внутри, если условие в пакетном скрипте. Пример, если файл существует (скопируйте somefile, moveomefile, переименуйте somefile, echo что-то), иначе сделайте что-нибудь еще)

по какой-то причине я не могу добавить несколько команд внутри, если условия

любая помощьприветствуется

пробовал разные команды разными способами, но это не сработало

это всего лишь пример кода, который может дать вам представление о том, чего я добиваюсь

, если существует C: \ Users \ admin \ Desktop \ TEST \ dc.txt (эхо-тайм-аут "файл существует" / t 10 copy C: \ Users \ admin \ Desktop \ TEST \ dc.txt C: \ Users \ admin \ Desktop) else (эхо"привет" копия C: \ Users \ admin \ Desktop \ TEST \ test.txt C: \ Users \ admin \ Desktop)

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Вот оно:

if exist C:\Users\admin\Desktop\TEST\dc.txt (<br> echo "file exist" <br> timeout /t 10 <br> copy C:\Users\admin\Desktop\TEST\dc.txt C:\Users\admin\Desktop <br> ) else ( <br> echo "hello" <br> copy C:\Users\admin\Desktop\TEST\test.txt C:\Users\admin\Desktop<br> )<br>

Ваша проблема заключалась в неправильном заключении в скобки кода.

1 голос
/ 15 октября 2019

Оператор if заканчивается fi. Вы можете использовать else и elif []; then для else и else-if соответственно. Убедитесь, что каждая команда находится либо в новой строке, либо через точку с запятой.

[ также имеет справочную страницу и объясняет множество опций, которые вы можете использовать с оператором if.

#! /bin/bash
# usage $0 <filename>

file=$1 # First given argument, in your case "C:\Users\admin\Desktop\TEST\dc.txt"
RET=0

# -f = file exists
if [ -f "$file" ]; then
    # Copy also renames the file
    cp "$file" 'C:\Users\admin\Desktop\some_other_filename.txt'
else
    echo "File does not exist"
    RET=1
fi
exit ${RET}

Вы можете опустить двойные кавычки, используя if [[ -f $file ]]; then,но я не использую окна, и \ может вызвать проблемы, поскольку он используется для экранирования символов (например, \n для новой строки).

Кроме того, оператор if не может иметь пустое тело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...