批处理脚本使用git命令和双引号写入文件

时间:2018-03-26 05:43:04

标签: git batch-file

我得到了以下批处理脚本 - 合作一个git调用:

def write_File(fName):
        start = timeit.default_timer()
        print('writing to {}!\n'.format(fName))
        with open(fName, 'a') as f:
                for i in range(0, 10000000):
                        f.write("aadadadadadadadadadadadada" + str(i));
        end = timeit.default_timer()
        print(end - start)
        print('Fn exit!')

start = timeit.default_timer()
t1 = Thread(target=write_File, args=('test.txt',))
t1.start()

t2 = Thread(target=write_File, args=('test1.txt',))
t2.start()
t2.join()
end = timeit.default_timer()
print(end - start)
input('enter to exit')

我真正想要的是拥有

@echo off
ECHO ^" > test.txt
ECHO &call git describe >> test.txt
ECHO ^" >> test.txt

在test.txt文件中。

但我从批处理srcipt得到的是

"theGitDescribeContent"

我已经查找了一些关于如何在没有换行符的情况下写入文件的网站,但它确实没有成功。 e.g。

"
theGitDescribeContent
"

看起来不喜欢

echo|set /p="^"" > test.log
echo|set /p=&call git describe >> test.log
echo|set /p="^"" >> test.log

从第一个位置开始,因为它不会在test.log和

中存储任何内容
echo|set /p="^"" > test.log

产生

echo|set /p=&call git describe >> test.log

这应该非常简单,但我已经花了一个小时试图在线寻找解决方案。

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

批次sript:

@echo off
set "tag="
for /f %%i in ('git describe') do set "tag=%%i"
echo "%tag%"> test.txt

如果您在命令行中运行,请使用%i的{​​{1}} insetad。

正如@aschipfl发表评论的那样,答案需要更新,从%%iecho ^"%tag%^" > test.txt,在echo "%tag%"> test.txt附近添加双引号。