Batch file 如何获取特定文件夹中的文件名并将文件名与一些字符连接起来
我正在尝试编写一个批处理文件脚本,该脚本将创建一个.sql文件并编写我想要的内容,以下是我正在尝试的逻辑,我们需要整合每个国家的所有.sql脚本并创建一个主.sql文件,该文件将调用所有其他.sql文件,我们将向DBA团队提供这些文件,他们将运行主文件,而不是运行单个文件 我已经创建了脚本,该脚本将创建.sql文件和几个带有@echo命令的基本命令。我还能够列出特定文件夹中的文件,但我无法循环连接前缀和后缀处只有几个字符的文件名 下面是我尝试的代码Batch file 如何获取特定文件夹中的文件名并将文件名与一些字符连接起来,batch-file,cmd,Batch File,Cmd,我正在尝试编写一个批处理文件脚本,该脚本将创建一个.sql文件并编写我想要的内容,以下是我正在尝试的逻辑,我们需要整合每个国家的所有.sql脚本并创建一个主.sql文件,该文件将调用所有其他.sql文件,我们将向DBA团队提供这些文件,他们将运行主文件,而不是运行单个文件 我已经创建了脚本,该脚本将创建.sql文件和几个带有@echo命令的基本命令。我还能够列出特定文件夹中的文件,但我无法循环连接前缀和后缀处只有几个字符的文件名 下面是我尝试的代码 @echo off b
@echo off
break>"C:\Gopi_Kishan\DBBR\Daily_attachments\ausqascript_20190708\dblank.sql"
cd C:\Gopi_Kishan\DBBR\Daily_attachments\ausqascript_20190708
@echo Set scan off;>>dblank.sql
@echo alter session set current_schema="SV2AUPR";>>dblank.sql
rem dir /b "C:\Gopi_Kishan\DBBR\Daily_attachments\ausqascript_20190708\" >>dblank.sql
我想输出如下方式
Set scan off;
alter session set current_schema="SV2AUPR";
@@BLUE-CR616-APPLICATION_NO_CHANGE.sql;
SHOW ERROR;
@@CR_deployment_script.sql;
SHOW ERROR;
@@Addroledetails.sql;
SHOW ERROR;
@@SV2_IBIS_MOVE_DATA_PR_ALL_DB.sql;
SHOW ERROR;
我想在文件名前面加上“@@”和“;”在文件名的末尾
有人能帮我吗
(
@for /f "delims=" %%a in ('dir /a-d /b "C:\Gopi_Kishan\DBBR\Daily_attachments\ausqascript_20190708\*.sql"') do @echo @@%%a;&@echo show_error;
)>>dblank.sql
应该按照你的要求去做。for
命令周围的括号允许通过>
(附加到文件)重定向输出
为了*.sql
(每个.sql
文件)以基本形式将其名称命名为%%a
<代码>/a-d表示没有目录名匹配。然后echo
this及其前缀和后缀后跟show\u错误代码>行;已重定向以附加到文件
请注意,如果在脚本开始时按正常方式执行@echo off
,则不需要在每个批处理命令之前执行@
。@KishanM-当有适合您的答案时,请选中复选标记以向其他人指示答案正确。这就是它的工作原理。