如何使用mysql或批处理文件创建文件名,其中部分文件内容需要在名称中?

rnmwe5a2  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(290)

好吧,这就是我想说的。
使用mysql命令行,我运行一个脚本,然后像这样保存数据:

mysql -h DATABASE -u yyyy -pxxxx < E:/Step_2.sql > E:/OUTPUT_YYYY_QQ.csv

现在,无论是使用mysql还是windows批处理命令,我都希望yyyy和qq是一个特定的值。但这不是现在的日期。在这个例子中,我希望yyyy是2017,qq是q4。
我可以灵活选择:
如果需要的话,用sql中的值创建一个新表。然后在帮助下运行命令,将这些值用作文件名的一部分。
或者我可以在服务器上的某个地方放置一个文件来“引用”,以便获取数据并将其放置在文件名中。
有什么想法吗?

0s7z1bwu

0s7z1bwu1#

在这里,我创建了一个名为“test.sh”的shell脚本,它将动态生成文件名,但是您只需要将这个shell脚本转换为windows批处理。根据你的评论,这对你来说是个主意。
测试.sh

file_name=$(mysql -N -hlocalhost -uvivek -pvivek -e "select concat('OUTPUT_',year(date_column),'_Q',quarter(date_column),'.csv') file_name from table_name")
mysql -hlocalhost -uvivek -pvivek </home/vivekanand/vivek/stack/test.sql >/home/vivekanand/vivek/stack/$file_name

运行脚本后,我得到了如下所示的文件,并正确输出了sql文件“test.sql”

-rw-rw-r-- 1 vivekanand vivekanand 14535 May  7 13:56 OUTPUT_2017_Q4.csv

相关问题