windows 下用 .bat 文件控制程序编译、对不同输入输出文件运行。
@echo off
setlocal enabledelayedexpansion
cls
diff main.cpp test/main.cpp > log/diff.txt
g++ -O3 main.xfsh.cpp -o test -lpthread
REM main.exe test_data.txt log/out.test_data.txt
REM python check.py -a result.txt -b log/out.test_data.txt
for %%F in (dataset/data.*k.txt) do (
echo --- %%F ---
set "file=%%F"
set "out_f=log/out.!file:~5!"
REM echo output file: !out_f!
test.exe dataset/%%F !out_f!
REM python check.py -a !out_f! -b
)
这里用 for 遍历了 dataset/ 下所有文件名形如 data.*k.data 的文件;file 用来装循环变量的值 %%F(作为字符串);out_f 截取 file 中从第 5 个字符开始的后面的字符,并拼上 log/out. 的前缀,作为输出文件的路径。
其中:
@echo off防止每条命令在执行时输出到命令窗口(回显)setlocal enabledelayedexpansion用延迟变量时用到,循环中!xxx!的那些- 延迟变量用
!x!引用,循环变量用%%y,普通变量用%z% REM注释,也可以用::
7732

被折叠的 条评论
为什么被折叠?



