首页 > 解决方案 > 如何使用 MySQL 或批处理文件创建文件名,其中部分文件内容需要在名称中?

问题描述

好的,这就是我想要做的。

使用 MySQL 命令行,我正在运行一个脚本,然后像这样保存数据:

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

现在,无论是使用 MySQL 还是 Windows 批处理命令,我都希望 YYYY 和 QQ 成为特定值。但这不是当前日期。在此示例中,我希望 YYYY 为 2017 年,QQ 为 Q4。

我可以灵活选择:

  1. 如果需要,使用其中的值在 SQL 中创建一个新表。然后在帮助下运行命令以将这些值用作文件名的一部分。

  2. 或者我可以将文件放在服务器上的某个位置以“引用”,以便获取数据并将其放在文件名中。

有什么想法吗?

标签: mysqlwindowsbatch-file

解决方案


在这里,我创建了一个名为“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

推荐阅读