【问题标题】:DOS script to read one file into another将一个文件读入另一个文件的 DOS 脚本
【发布时间】:2011-10-12 12:46:36
【问题描述】:

我发现我无法在托管的 sql server db 上获得 BULKADMIN 或 SYSADMIN 角色,并试图通过创建包含插入语句的 .sql 文件来绕过批量插入操作。插入语句是使用 xls 宏创建的,因此我现在正在做一些手动车身购物工作。所以让我在这里画出问题。

我有一个包含以下内容的文本文件 -

10/05/2011 01:21 PM 1-16332-1008261.psa 
10/05/2011 01:21 PM 1-16332-1011698.psa 
10/05/2011 01:21 PM 1-16332-1023151.psa 
10/05/2011 01:21 PM 1-16332-1035695.psa 
10/07/2011 03:36 PM 1-16332-1023193.psa 
10/07/2011 03:36 PM 1-16332-1035694.psa 
6 File(s) 8,933,754 
2 Dir(s) 1,675,268,096 free

我想在我的最终输出文件中实现的是 -

insert into xyz.abcd values('10/05/2011', '1-16332-1008261.psa');
insert into xyz.abcd values('10/05/2011', '1-16332-1011698.psa');
insert into xyz.abcd values('10/05/2011', '1-16332-1023151.psa');
insert into xyz.abcd values('10/05/2011', '1-16332-1035695.psa');
insert into xyz.abcd values('10/07/2011', '1-16332-1023193.psa');
insert into xyz.abcd values('10/07/2011', '1-16332-1035694.psa');
go

请注意,我的输入文本文件的最后两行将在我的最终输出 sql 文件中添加。它是我现在通过 dos 脚本手动执行的 xls 宏的一种自动化,其中“插入 xyz.abcd 值”被认为是一个常量字符串,在读取文件的实际日期和文件名之前写入每个新行. 我将我的最终输出文件命名为 .sql 并从我的计算机远程执行它。 如果这在 DOS 编程中是否可行,有人可以帮助我吗?

我试图在另一篇我试图删除的帖子中提出类似的问题,但我无法这样做。我猜我没有正确解释另一个。

我知道我可以通过 echo 命令将字符串作为文字重定向到文件,但挑战是如何从一个文件中读取一行的一小部分并将它们放入一个新文件中。

谢谢!

【问题讨论】:

标签: batch-file


【解决方案1】:

请将以下代码放入记事本并保存为 CMD 批处理文件(例如 Convert2SQLfile.cmd)。然后使用 3 个参数从命令行运行它,同时:

  • 第一个参数包含要从中读取数据的源文件的路径
  • 第二个参数包含保存数据的目标文件的路径
  • 第三个参数包含应该存储在 SQL 命令中的表名,而不是您的请求中的“xyz.abcd”

希望这会有所帮助。

问候,
标准

@echo 关闭 设置本地 SET App.SourceFile=%1 SET App.DestinationFile=%2 SET App.Table=%3 FOR /f "usebackq tokens=1,4" %%i IN (`type %%App.SourceFile%%`) DO ( 如果 #%%j# NEQ ## ( IF #%%j# NEQ #free# ( ECHO 插入 %App.Table% 值 ^('%%i', '%%j'^); >> %App.DestinationFile% ) ) ) ECHO 去 >> %App.DestinationFile%

【讨论】:

  • Evianton,谢谢,这听起来有点轻描淡写!这就像一个魅力。该线程可能会帮助其他没有 BULKADMIN 访问权限但希望将 sql 文件上传到托管在远程服务器上的 sql server db 的人。
  • @user982201 IF #%%j# NEQ #free# 的目的是什么?我明白了,它是原始文件的一部分,请参阅问题。
猜你喜欢
  • 1970-01-01
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
相关资源
最近更新 更多