BAT批处理:获取文件名(不含后缀)、执行SQL语句及数据导入

这篇博客讲述了如何使用批处理脚本来自动化处理多个DMP文件。作者通过遍历目录中的.DMP文件,获取不带后缀的文件名,然后动态创建对应的数据库用户,并将每个DMP文件中的数据导入相应的用户。批处理脚本包含了文件名处理、SQL语句动态替换和数据导入等关键步骤。
摘要由CSDN通过智能技术生成

最近遇到需要按一目录下每个DMP文件的文件名(不包括后缀)创建数据库用户,并把同名DMP文件中的数据导入相应的各个用户中。

思前想后,决定用批处理来完成这工作。

多个DMP文件我这是放在C:\Users\Administrator\Desktop\数据\

批处理文件和相关文件则是放在了C:\Users\Administrator\Desktop\批处理\

下面是我的BAT文件内容:

@echo off
setlocal enabledelayedexpansion
set dir=C:\Users\Administrator\Desktop\数据
for /f %%j in ('dir /b C:\Users\Administrator\Desktop\数据\*.DMP') do (
for /f "eol=* tokens=*" %%k in (create.sql) do (
set a=%%k
set "var=!a:123=%%~nj!"
echo !var!>>$
echo !a!>>#)
move $ create.sql
sqlplus /@TEST AS SYSDBA @C:\Users\Administrator\Desktop\批处理\create.sql
set b=%%~nj&imp \"!b!/pass1009@TEST\" fromuser=!b! touser=!b! FILE=!dir!\!b!.DMP LOG=!dir!\!b!.LOG
move # create.sql
)
echo ---------------------------------------------


pause

其中

for /f %%j in ('dir /b C:\Users\Administrator\Desktop\数据\*.DMP') do (......)

这里完成了对目录的整个遍历,并找出.DMP文件,获取文件名至变量J中(这里的j还是带后缀的)
如果想纯粹获取文件名:echo %%~nj(该操作输出不带后缀的文件名)

因为要动态创建用户,所以create.sql中的语句每次循环都需要替换用户名的

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值