如何在批处理脚本中添加多个命令insde single if循环

时间:2019-10-15 15:37:38

标签: bash

您能告诉我linux中条件的含义吗?我必须把它秘密化为bash

我想在批处理脚本中在条件内添加多个命令。 例 如果文件存在 (复制somefile,movesomefile,重命名somefile,回显某些内容) 别的事

由于某种原因,如果有条件,我无法在其中添加多个命令

感谢您的帮助

以不同的方式尝试了不同的命令,但没有奏效

这只是示例代码,可能会让您了解我要达到的目标

如果存在C:\ Users \ admin \ Desktop \ TEST \ dc.txt(回显“文件存在”超时/ t 10复制C:\ Users \ admin \ Desktop \ TEST \ dc.txt C:\ Users \ admin \ Desktop),否则(echo“ hello”复制C:\ Users \ admin \ Desktop \ TEST \ test.txt C:\ Users \ admin \ Desktop)

2 个答案:

答案 0 :(得分:1)

if语句以fi结尾。您可以分别将elseelif []; 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省略双引号bu,但是我不使用Windows,\可能会引起问题,因为它用于转义字符(例如,换行符为\n)。

此外,if语句不能有空主体。

答案 1 :(得分:-1)

这里是:

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

您的问题是代码的括号不正确。