【问题标题】:How to get the file names in a specific folder and concatenate the file name with some characters如何获取特定文件夹中的文件名并将文件名与某些字符连接
【发布时间】:2019-07-09 21:32:13
【问题描述】:

我正在尝试编写一个批处理文件脚本,它将创建一个 .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;

我想在文件名前加上'@@'和';'在文件名的末尾 任何人都可以帮助我吗?

【问题讨论】:

    标签: batch-file cmd


    【解决方案1】:
    (
    @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_error; 行;重定向到附加到文件。

    请注意,如果您在脚本开始时正常执行@echo off,则不需要每个批处理命令前面的@

    【讨论】:

    • @KishanM - 当有适合您的答案时,请选中复选标记以向其他人表明答案是正确的。这就是 SO 的工作原理。
    猜你喜欢
    • 1970-01-01
    • 2017-08-14
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 2017-03-17
    • 1970-01-01
    • 2020-06-28
    相关资源
    最近更新 更多