社区
茶馆
帖子详情
请高手指点,自动执行批处理文件问题,急!
wkqzd
2005-12-19 03:51:38
问题描述:
我通过程序,自动生成了一个批处理文件。
批处理文件内容为:
@echo off
SQLPlus
用户名/用户密码@数据库名称
.
.
.
.
.
.
我的目的是通过执行我的批处理文件,自动连接到SQLPlus,并在里面执行我的操作,而实际在执行批处理文件时,停在了“请输入用户名”,如何实现在我的批处理文件里就连上了SQLPlus而不出现这个提示。请高手们赐教!
...全文
474
13
打赏
收藏
请高手指点,自动执行批处理文件问题,急!
问题描述: 我通过程序,自动生成了一个批处理文件。 批处理文件内容为: @echo off SQLPlus 用户名/用户密码@数据库名称 . . . . . . 我的目的是通过执行我的批处理文件,自动连接到SQLPlus,并在里面执行我的操作,而实际在执行批处理文件时,停在了“请输入用户名”,如何实现在我的批处理文件里就连上了SQLPlus而不出现这个提示。请高手们赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
icwin
2006-01-04
打赏
举报
回复
mark
痞子酷
2005-12-28
打赏
举报
回复
我在windows没有试过,但在unix下是这样的:
sqlplus UserName/password@ServerName <<!
@fileName.sql
exit
!
sqlplus UserName/password@ServerName <<!
spool a.txt
select to_char(sysdate,'yyyymmddhh24miss') from dual
exit
!
你试试吧,我没有进行测试。随便写的。
呵呵~~~接分
痞子酷
2005-12-28
打赏
举报
回复
我在windows没有试过,但在unix下是这样的:
sqlplus UserName/password@ServerName <<!
@fileName.sql
!
sqlplus UserName/password@ServerName <<!
spool a.txt
select to_char(sysdate,'yyyymmddhh24miss') from dual
!
你试试吧,我没有进行测试。随便写的。
呵呵~~~接分
痞子酷
2005-12-28
打赏
举报
回复
主要输入
我在windows没有试过,但在unix下是这样的:
sqlplus <<!
@fileName.sql
!
sqlplus <<!
spool a.txt
select to_char(sysdate,'yyyymmddhh24miss') from dual
!
你试试吧,我没有进行测试。随便写的。
呵呵~~~接分
h98458
2005-12-28
打赏
举报
回复
贴这个给大家参考
:)
h98458
2005-12-28
打赏
举报
回复
批处理文件,窗口中显示
完整代码示例:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//---------------------
String ExecuteApp(String sCmdline,TMemo *MyMemo)
{
PROCESS_INFORMATION proc = {0};
long ret;//,k=1
bool bret;
STARTUPINFO start = {0};
SECURITY_ATTRIBUTES sa = {0};
HANDLE hReadPipe ;
HANDLE hWritePipe;
String sOutput;
String sBuffer;
unsigned long lngBytesRead;
char cBuffer[257];
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor=0;
sa.bInheritHandle = TRUE;
bret =::CreatePipe(&hReadPipe, &hWritePipe,&sa, 0);
if (!bret)
{
sOutput="CreatePipe failed. Error: " + String(GetLastError());
MyMemo->Lines->Add(sOutput);
return sOutput;
}
start.cb = sizeof(STARTUPINFOA);
start.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
start.hStdOutput = hWritePipe;
start.hStdError = hWritePipe;
start.wShowWindow = SW_HIDE;
sBuffer = sCmdline;
ret =::CreateProcess(0, sBuffer.c_str(), &sa, &sa, TRUE, NORMAL_PRIORITY_CLASS, 0, 0, &start, &proc);
if (ret == 0)
{
sOutput="Bad command or filename";
MyMemo->Lines->Add(sOutput);
return sOutput;
}
::CloseHandle(hWritePipe);
do
{
memset(cBuffer,'\0',sizeof(cBuffer));
ret = ::ReadFile(hReadPipe, &cBuffer, 256, &lngBytesRead, 0);
sBuffer=StrPas(cBuffer);
sOutput = sOutput + sBuffer;
MyMemo->Text=MyMemo->Text+sBuffer;
Application->ProcessMessages();
} while (ret != 0 );
::CloseHandle(proc.hProcess);
::CloseHandle(proc.hThread);
::CloseHandle(hReadPipe);
return sOutput;
}
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//ExecuteApp("ping 127.0.0.1",Memo1);
ExecuteApp("DirCD.bat",Memo1);
}
//---------------------------------------------------------------------------
rudolf_he
2005-12-23
打赏
举报
回复
9494
也让藕们学习学习哈
wkqzd
2005-12-20
打赏
举报
回复
已经搞定了,谢谢楼上的支持!
sydt2000
2005-12-20
打赏
举报
回复
搞定了,那把解决方法公布以下,说不定版主给弄成精华帖呢?
同时别人也可借鉴吗!!!
wkqzd
2005-12-19
打赏
举报
回复
我的意思是:我做了一个加密小工具,对Oracle过程包(含过程、函数、触发器)进行加密(加密机制采用oracle带的wrap工具加密),加密是通过对要加密的文件自动写成批处理文件后,并执行产生加密文件。
而要在工具里自动编译运行加密后的文件(当然可以手工在PLSQL里去编译),我的思路是对要编译的加密文件存成批处理文件后并执行,达到在SQLPlus里自动编译的效果。
批处理文件存成的格式为:
@echo off
SQLPlus 用户名/用户密码@数据库名称
@文件名1;
@文件名n;
但执行批处理文件时到“SQLPlus 用户名/用户密码@数据库名称
”就停住了,并未执行“@文件名1;”……“@文件名1;”。
请各位高手提供好的实现方式,谢谢。
wohow
2005-12-19
打赏
举报
回复
没看懂。
用EXE吧,别用BAT了
wkqzd
2005-12-19
打赏
举报
回复
谢谢楼上的wohow()。
改成:
@echo off
SQLPlus 用户名/用户密码@数据库名称
select count(*) from 表名;
如何执行批处理文件后直接看到其执行SQL语句后而不是要输入执行语句呢?
wohow
2005-12-19
打赏
举报
回复
SQLPlus 用户名/用户密码@数据库名称
Linux企业级日常工作实战初级视频
学习宣言: 我曾经经历过学习Linux的苦恼,没有人
指点
,进步慢如蜗牛,也是非常荣幸得到很多人的帮助和指导,所以今天想帮助真心想学习的朋友,少走弯路,用技术成就自己的梦想。 讲课风格: Linux从基础到高级系列...
损坏
文件
,
请
从我的电脑中消失!
平时用了一段时间电脑后,我总要用
批处理
文件
来清除一下系统垃圾
文件
,可是前段时间在清理中却在电脑的右下角跳出一个提示框: 看后缀是备份
文件
,360保险箱里怎么会有损坏
文件
?我有点奇怪,猜想大概是在升级过程发生的意外引起的吧,逐按路径找到该
文件
想删了它 谁知道却删不了,出错框跳出 在网上查了一下资料,打开命令提示符输入chkdsk c: /f/...
玩转DOS命令成为
批处理
高手
--- 基础篇(4)
所有空格以后的内容都被屏蔽掉了。于其它命令、
文件
名和字符串
执行
相应任务的字母和标点符号。运行程序将当前目录下的所有
文件
以及
文件
夹的名字显示出来。这里被处理的文本里的冒号和后面的文字字符必须有空格隔。第一个逗号和第一个逗号后面的所有内容都没有显示出来。这里有逗号、句号、问号和分号四个符号都作为分隔符。会忽略掉所有行的前导空格后将全部文本内容都显示出来。充到找到的第一个完全合格的名称。这说明空格、逗号和分号都可以作为分隔符。的目的主要是通过切分字符串获得可编辑的字符串以便。帮助里关于变量的中的内容。
SQL2005
自动
备份及
文件
自动
同步到网络上的主机上 -Allway Syn
SQL2005
自动
备份及
文件
自动
同步到网络上的主机上-AllwaySyn出处:本站整理作者:佚名日期:2011-3-914:02:05[大中小]评论:3|我要发表看法我们这编文章来给大家演示一个在SQL2005下面
自动
备份数据库
文件
,然后
自动
把备份
文件
同步到别的主机上的教程。SQL2005下载地址软件名称:SQLServer2005软件...
IIS
自动
停止,iis
自动
关闭。应用程序池假死、
自动
重启以及iis权限等解决办法
IIS无故
自动
关闭停止已经不是罕见的事情了,处理这个
问题
是让我很头痛的事情,遇到这个
问题
不太可能一次性解决,多数都是用排除法一个个测试排除错误,最终找到那个错误命令。最近我的服务器遇到了这个
问题
,我很无奈,我很
急
,客户也很着
急
,每天IIS都要
自动
停止2次以上,我总是怀疑是进程池
问题
,此文章是针对IIS进程池解决办法,如果你遇到了死循环代码,或者其他非进程池,那此文章不太适合你了 网络上有关i
茶馆
552
社区成员
20,062
社区内容
发帖
与我相关
我的任务
茶馆
C++ Builder 茶馆
复制链接
扫一扫
分享
社区描述
C++ Builder 茶馆
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章