如何获取特定文件夹中的文件名以及如何用一些字符将文件名连接起来

时间:2019-07-09 13:18:12

标签: batch-file cmd

我正在尝试编写一个批处理文件脚本,该脚本将创建一个.sql文件并写入所需的内容,以下是我正在尝试的逻辑,我们需要合并每个国家/地区的所有.sql脚本并创建一个主SQL文件,该文件将调用所有其他.sql文件,我们将这些文件提供给我们的DBA团队,它们将运行主文件而不是运行单个文件,

我创建了将创建.sql文件的脚本,并使用@echo命令创建了一些基本命令,我也能够在特定文件夹中列出文件,但无法执行循环以连接文件名称带有前缀和后缀的字符。

以下是我尝试过的代码

    @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;

我想在文件名前添加“ @@”,并在其后添加“;”文件名末尾 有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

&ch

应该按照您的要求进行操作。 char (*)[N]命令周围的括号允许通过( @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,则不需要每个批处理命令前的show_error;