windows相当于这个shell脚本

时间:2017-04-05 12:33:16

标签: shell batch-file

我在Windows中为这个shell脚本寻找一个等价物:

#!/bin/bash

if [ ! -f  D:/Users/u159615/Desktop/fic ];then
echo 1 > fic
fi
read value < fic

#Rscript myRscript.R $value

value=`expr $value + 1`

echo $value > fic

我试过这段代码:

@ECHO OFF 

IF NOT EXIST D:\Users\u159615\Desktop\fic (echo 1 >= fic)

set /p cpt =< fic

rem Rscript myRscript.R %cpt%

set /a cpt = %cpt%+1
echo %cpt% > fic

但我有一个Windows脚本的问题,我运行脚本三次,然后我删除文件fic并再次运行它但变量cpt中的值不重置为1。 有没有人有想法?

提前致谢

2 个答案:

答案 0 :(得分:1)

小心=周围的空格。批处理中,空格将成为变量名称的一部分。echo digit>file将被视为流的重定向,因此在这种情况下,您需要一对额外的括号。

@ECHO OFF 

IF NOT EXIST "D:\Users\u159615\Desktop\fic" ((echo 1)>fic)

set /p cpt=<fic

rem Rscript myRscript.R %cpt%

set /a cpt=%cpt%+1
(echo %cpt%)>fic

答案 1 :(得分:0)

我同意npocmaka,但我不喜欢混淆绝对和相对的角色。

@ECHO Off
Set fic="%UserProfile%\Desktop\fic"
IF NOT EXIST %fic% (>%fic% echo 1)
set /p "cpt="<%fic%

rem Rscript myRscript.R %cpt%

set /a "cpt+=1"
Echo new cpt=%cpt%
>%fic% echo %cpt%