windows中的bat文件与linux,linux下shell文件与windows下bat文件互相转换

shell(Linux、Solaris)

bat(windows)

含义

#

rem

注释行

/【directory】/【directory】/.../【directory】/

【disk】:\【directory】\【directory】\...\【directory】\

path

【变量】=【文件名】,LBSAM

set 【变量】=【文件名】,BSAM

把文件名赋值给变量

【变量】=【设定值】

【变量】="【设定值】"

【变量】='【设定值】'

【变量】=【设定值】; export 【变量】

export 【变量】=【设定值】

set 【变量】=【设定值】

变量的赋值

unset 【变量】

set 【变量】=

变量的初始化

${【变量】}

$【变量】

%【变量】%

变量的引用

※如果变量在if语句和for循环中被赋值了的话,

在引用的时候需要用!【变量】!。

※如果使用!【变量】!,要添加(延迟环境变量)

setlocal enabledelayedexpansion

$【数字】

${【数字】}

%【数字】

shell/bat启动的时候,传入的第【数字】个参数

$1/%1 →启动时传入的第一个参数

【变量】=`basename $0 .sh`

set 【变量】=%~n0

本shell/bat的文件名字赋值给变量

test1.sh/test.bat → 变量=test

【变量】=`dirname 【文件】`

for %%i in ("【文件】") do (set 【变量】=%%~dpi)

取得所在文件路径赋值给变量

例 :

shell:

path1=`dirname /home/dir1/dir2/test.txt`

path1=/home/dir1/dir2

bat  :

for %%i in ("D:\dir1\dir2\test.txt") do (

set path2=%%~dpi

)

path2=D:\dir1\dir2

【变量】=`basename 【文件】`

for %%i in ("【文件】") do (set 【变量】=%%~nxi)

取得所在文件路径赋值给变量

例 :

shell:

filename1=`dirname /home/dir1/dir2/test.txt`

filename1=test.txt

bat  :

for %%i in ("D:\dir1\dir2\test.txt") do (

set filename2=%%~dpi

)

filename2=test.txt

【变量】=$?

set 【变量】=%errorlevel%

上一个命令执行的结果赋值给变量

if [ 【条件】 ]; then

【处理1】

else

【处理2】

fi

if 【条件】 (

【处理1】

) else (

【处理2】

)

※shell里面的if语句(if test 【条件】)和

(if [ 【条件】 ])意思一样

if [ $【变量】 -eq 【数值】 ]; then

if %【变量】% equ 【数值】 (

等于

if [ $【变量】 -ne 【数值】 ]; then

if %【变量】% neq 【数值】 (

不等于

if [ $【变量】 -lt 【数值】 ]; then

if %【变量】% lss 【数值】 (

小于

if [ $【变量】 -le 【数值】 ]; then

if %【变量】% leq 【数值】 (

小于等于

if [ $【变量】 -gt 【数值】 ]; then

if %【变量】% gtr 【数值】 (

大于

if [ $【变量】 -ge 【数值】 ]; then

if %【变量】% geq 【数值】 (

大于等于

if [ $【变量】 = "【字符串】" ]; then

if %【变量】%==【文字列】 (

等于

if [ $【变量】 != "【字符串】" ]; then

if not %【变量】%==【文字列】 (

不等于

if [ -e 【文件 or 文件夹】 ]; then

if exist 【文件 or 文件夹】 (

文件或文件夹存在

if [ ! -e 【文件or 文件夹】 ]; then

if not exist 【文件 or 文件夹】 (

文件或文件夹不存在

if [ -f 【对象】 ]; then

for %%A in ("【对象】") do (set 【变量】=%%~aA)

if  "%【变量】:~0,1%"=="-" (

对象是文件

※shell里面如果是if [ ! -f 【对象】 ]; then的时候,对应的bat是

if  not "%【变量】:~0,1%"=="-" (

意思是判断对象是否是文件以外

if [ -d 【对象】 ]; then

for %%A in ("【对象】") do (set 【变量】=%%~aA)

if  "%【变量】:~0,1%"=="d" (

对象是文件夹

if [ -s 【文件】 ]; then

for %%A in ("【文件】") do (set 【变量】=%%~zA)

if  %【变量】% gtr 0 (

文件的size大于0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值