Execute batch file
Hello,
I have a simple and short batch file I am trying to execute from SQL server. The SQL database I am connected to is my local instance. The script I am using is as below:
EXECUTE [master].[dbo].[xp_cmdshell] 'C:\Users\Jdoe\Desktop\Test.bat'
The batch file is located at the path listed above and contains the below:
SchTasks /query /fo csv > I:\Schedtask.txt /v /s reports.xyz.org
The above command line code connects to a remote machine and gets the list of all scheduled tasks. Please note that executing the batch file by double-clicking on the icon works without issues. When I try however to run the SQL listed above, I get the below:
output
NULL
C:\Windows\system32>SchTasks /query /fo csv /v /s reports.xyz.org 1>I:\Schedtask.txt
The system cannot find the path specified.
NULL
What am I doing wrong. I am expecting the SQL to execute de batch file which should create a output file at the specified location but it doesn't.
Thanks for helping
Try to use UNC path (\\server\share\file_path). Also make sure that the doamain account used as task owner has the proper rights on the source and destination
Javier Villegas |
@javier_vill | http://sql-javier-villegas.blogspot.com/
Please click "Propose As Answer" if a post solves your problem or "Vote As Helpful" if a post has been useful to you
Similar Messages
-
Executing batch file from Java stored procedure hang
Dears,
I'm using the following code to execute batch file from Java Stored procedure, which is working fine from Java IDE JDeveloper 10.1.3.4.
public static String runFile(String drive)
String result = "";
String content = "echo off\n" + "vol " + drive + ": | find /i \"Serial Number is\"";
try {
File directory = new File(drive + ":");
File file = File.createTempFile("bb1", ".bat", directory);
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);
fw.write(content);
fw.close();
// The next line is the command causing the problem
Process p = Runtime.getRuntime().exec("cmd.exe /c " + file.getPath());
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null)
result += line;
input.close();
file.delete();
result = result.substring( result.lastIndexOf( ' ' )).trim();
} catch (Exception e) {
e.printStackTrace();
result = e.getClass().getName() + " : " + e.getMessage();
return result;
The above code is used in getting the volume of a drive on windows, something like "80EC-C230"
I gave the SYSTEM schema the required privilege to execute the code.
EXEC DBMS_JAVA.grant_permission('SYSTEM', 'java.io.FilePermission', '<<ALL FILES>>', 'read ,write, execute, delete');
EXEC DBMS_JAVA.grant_permission('SYSTEM', 'SYS:java.lang.RuntimePermission', 'writeFileDescriptor', '');
EXEC DBMS_JAVA.grant_permission('SYSTEM', 'SYS:java.lang.RuntimePermission', 'readFileDescriptor', '');
GRANT JAVAUSERPRIV TO SYSTEM;
I have used the following to load the class in Oracle 9ir2 DB:
loadjava -u [system/******@orcl|mailto:system/******@orcl] -v -resolve C:\Server\src\net\dev\Util.java
CREATE FUNCTION A1(drive IN VARCHAR2) RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'net.dev.Util.a1(java.lang.String) return java.lang.String';
variable serial1 varchar2(1000);
call A1( 'C' ) into :serial1;
The problem that it hangs when I execute the call to the function (I have indicated the line causing the problem in a comment in the code).
I have seen similar problems on other forums, but no solution posted
[http://oracle.ittoolbox.com/groups/technical-functional/oracle-jdeveloper-l/run-an-exe-file-using-oracle-database-trigger-1567662]
I have posted this in JDeveloper forum ([t-853821]) but suggested to post for forum in DB.
Can anyne help?Dear Peter,
You are totally right, I got this as mistake copy paste. I'm just having a Java utility for running external files outside Oracle DB, this is the method runFile()
I'm passing it the content of script and names of file to be created on the fly and executed then deleted, sorry for the mistake in creating caller function.
The main point, how I claim that the line in code where creating external process is the problem. I have tried the code with commenting this line and it was working ok, I made this to make sure of the permission required that I need to give to the schema passing security permission problems.
The function script is running perfect if I'm executing vbs script outside Oracle using something like "cscript //NoLogo aaa1.vbs", but when I use the command line the call just never returns to me "cmd.exe /c bb1.bat".
where content of bb1.bat as follows:
echo off
vol C: | find /i "Serial Number is"
The above batch file just get the serial number of hard drive assigned when windows formatted HD.
Same code runs outside Oracle just fine, but inside Oracle doesn't return if I exectued the following:
variable serial1 varchar2(1000);
call A1( 'C' ) into :serial1;
Never returns
Thanks for tracing teh issue to that details ;) hope you coul help. -
Execute batch file having gmake command
Hi, I am executing batch file having gmake command in it, when i run batch file directly it works correctly,
but when i try to execute it from LabVIEW using system Exec.vi
i got following error,
process_easy: DuplicateHandle(In) failed (e=6)
process_easy() failed to launch process (e=6)
Thanks in advanceWhat OS?
How are you calling it in LV?
What is in the batch file?
Mike...
Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion
"... after all, He's not a tame lion..."
Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps -
How to execute batch file from JSP
hi frens !
i wanna know how to execute batch file from my JSP.i am using exec() method to get call the batch file. but its not working ....plz help
here mine code:-
File F = new File("C:/var.bat");
try{
if (F.exists())
Runtime rt = Runtime.getRuntime();
String url=F.getAbsolutePath();
Process proc = rt.exec(url);
proc.waitFor();
proc.destroy();
catch(Exception IOEx){
System.out.println(IOEx);
}Thanks and Regards
AllwynYou might improve your chances of getting help if you do two things:
1) Explain what "not working" means.
2) ChangeSystem.out.println(IOEx); to IOEx.printStackTrace(); (in the eventhat is in fact related to "not working"). -
Executing Batch files from Runtime.getRuntime().exec
Can we execute batch files from Runtime.getRuntime().exec() method.
Regards,
Nalinihi,
import java.io.IOException;
class BatchFileTest{
public static void main(String args[]){
try{
Runtime r = Runtime.getRuntime();
Process p = r.exec("startcmd.bat");
catch(IOException en){
en.printStackTrace();
-Regards
Manikantan -
Error executing batch file within web application
Hi all,
I am trying to execute a batch file from within my web application (struts 1.2).
The batch file is being kept inside the 'src' folder. The batch file contains only one command to open NOTEPAD.
The code inside my Action class is:
URL url = getClass().getResource("/test.bat");
java.io.File file = new java.io.File(url.getPath()) ;
String path = file.getCanonicalPath();
r.exec(path);
I have deployed this on tomcat and get an error like this:
java.io.IOException: Cannot run program "C:\Program%20Files\Apache%20Software%20Foundation\Tomcat%206.0\webapps\CIGTAFAPP\WEB-INF\classes\test.bat": CreateProcess error=2, The system cannot find the file specified
The problem is not with the batch file because when I try to execute the file directly from the classes folder, it opens up the notepad editor.
I have a specific requirement where I need to create/read this batch file from within the project structure.
Can someone please help me with this?
RegardsThe entire content of the file is as below:
set javaTestProjectPath=D:\projects\CIGTAF\LRTestCases
C:
cd %javaTestProjectPath%
set path=C:\Program Files\Java\jdk1.6.0_21\bin
set classpath=%javaTestProjectPath%\bin;%javaTestProjectPath%\lib\selenium-server-standalone-2.20.0.jar;%javaTestProjectPath%\lib\testng-6.4.jar;%javaTestProjectPath%\lib\junit-4.10.jar;%javaTestProjectPath%\lib\poi-3.6-20091214.jar;%javaTestProjectPath%\lib\mail.jar
javac -verbose %javaTestProjectPath%\src\com\core\testscripts\Mailsetup.java -d %javaTestProjectPath%\bin
javac -verbose %javaTestProjectPath%\src\com\core\testscripts\MailAuthenticator.java -d %javaTestProjectPath%\bin
javac -verbose %javaTestProjectPath%\src\com\core\testscripts\ReadData.java -d %javaTestProjectPath%\bin
javac -verbose %javaTestProjectPath%\src\com\core\testscripts\ReadWriteExcelResults.java -d %javaTestProjectPath%\bin
javac -verbose %javaTestProjectPath%\src\com\core\testscripts\SeleniumFramework.java -d %javaTestProjectPath%\bin
java org.testng.TestNG %javaTestProjectPath%\SelXD-Config.xml -d %javaTestProjectPath%\test-output
none of these are getting executed.
regards
Edited by: 887789 on May 4, 2012 1:46 AM -
Executing batch file using SM49 Tcode
Hi,
Theirs a batch file which is used to encrypt a text file ie from '.txt' to '.enc'.
Seperate Encryption software and Java Pakage is used.
When in SM49 the operating system command is executed,its throwing error
File Not Found Exception.
ie call failed
Java.io.filenotfoundexception : ..\logs\star_pkcs7-client-events.log(The system cannot find the path specified)
OS is WinNt,File is encrypting at OS level seperately.
All authorisation issue has been taken care of.
If any questions or need information then plz ask
Help me on this...its urgenthi,
well try the following
String cmdLine[] = {"cmd.exe","/c","copy.bat"}; Runtime.getRuntime().exec(cmdLine);it works fine in Win NT, the process terminates normally.
cheerz
ynkrish -
DSC powershell xwindowsprocess to execute batch file under different user account
DSC powershell run under "NT AUTHORITY\SYSTEM".
I am trying to execute a batch file under different user account using xwindowsprocess in DSC resource kit.
I created a custom dsc resource with 3 parameters namely Exepath, Arguments, Credential.
I received those parameter values in settargetresource method.
CallPInvoke
[Source.NativeMethods]::CreateProcessAsUser(("$ExePath "+$Arguments), $Credential.GetNetworkCredential().Domain, $Credential.GetNetworkCredential().UserName, $Credential.GetNetworkCredential().Password)
I tested it by invoking a batch file and writing username under which it executes to a text file.
After executing, the output text file still contains the "Systemname$".Configuration Sample_xService_ServiceWithCredential
param
[string[]]
$nodeName = 'localhost',
[System.String]
$Name,
[System.String]
[ValidateSet("Automatic", "Manual", "Disabled")]
$StartupType="Automatic",
[System.String]
[ValidateSet("LocalSystem", "LocalService", "NetworkService")]
$BuiltInAccount="LocalSystem",
[System.Management.Automation.PSCredential]
$Credential,
[System.String]
[ValidateSet("Running", "Stopped")]
$State="Running",
[System.String]
[ValidateSet("Present", "Absent")]
$Ensure="Present",
[System.String]
$Path,
[System.String]
$DisplayName,
[System.String]
$Description,
[System.String[]]
$Dependencies
Import-DscResource -Name MSFT_xServiceResource -ModuleName xPSDesiredStateConfiguration
Node $nodeName
xService service
Name = $Name
DisplayName = $DisplayName
Ensure = $Ensure
Path = $Path
StartupType = $StartupType
Credential = $credential
$Config = @{
Allnodes = @(
Nodename = "localhost"
PSDSCAllowPlainTextPassword = $true
#Sample Scenarios
$credential = Get-Credential
Sample_xService_ServiceWithCredential -ConfigurationData $Config -Name "Sample Service" -DisplayName "Sample Display Name" -Ensure "Present" -Path "C:\DSC\TestService.exe" -StartupType Automatic -Credential $credential
¯\_(ツ)_/¯ -
How to execute batch files in java
Hi,
I am trying to execute a batch file using a java program(StopServer in sdm).But i am not able to execute it.Greetings.
You may read this article (http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html)
to avoid of getRuntime().exec() traps. -
How to execute batch files or command in JSP environment
Hi,
I am new to Java in general and JSP too.
I have an application that uses JSP code i need to make it run or execute a number of batch files that run under command prompt (ms-dos)?
Can you provide me with sample code on how to do this?Simply put, you can't do that.
(Outputs from executing .BATs can be used in a response strings, though.)
Learn Java and JSP/Servlet basics. -
Executing batch files from websevice using ODI OS Command
Hi,
Is it possible to execute the batch files using odi os command from webservices.
We have developed a webservice, which passess some parameters to one batch file and after that we executing the same batch file in package using odi os command. In opeartor is showing as running, it never ends.
But if we run the same package from designer, it is executing successfully. Also the same web service is working fine for executing non batch scenarios.
what could be the problem??
We got one possible reason for failure...
For executing the batch from web services, we need read and executable permissions on the drive where batch sits.
We are logging into ODI using SUPERVISOR. How to give the permissions to SUPERVISOR as we are having windows authentication.
Edited by: Naveen Suram on Dec 17, 2009 8:07 PM
As a work around, can we use ODIOSCommand instead of OS Command. But it is asking for starting event? Whether both the commands does the same functionality??
Edited by: Naveen Suram on Dec 17, 2009 9:08 PMFrom the FAQ:
2. How do you launch an external program on a Microsoft Windows platform from a program developed on the Java [tm] programming language?
The following will launch notepad in Microsoft Windows NT:
Runtime.getRuntime().exec("cmd /c notepad.exe");
To launch a program in Microsoft Windows 95/98 use:
Runtime.getRuntime().exec("c:\\windows\\notepad.exe");
The Runtime class allows interaction between a program and its environment. The first string command instructs the command line interpretor, cmd to open up the calculator application.
The exec() methods do not use a shell; any arguments must have the full pathname to the shell as well as the command itself.
For example, to run a shell on the UNIX� platform, type:
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("/usr/bin/sh -c date");
To run a batch file under Microsoft Windows 95/98:
Process p = rt.exec("command.com /c c:\\mydir\\myfile.bat");
To run a batch file under Microsoft Windows NT:
Process p = rt.exec("cmd /c c:\\mydir\\myfile.bat");
where 'cmd' and 'command.com' are the command-line interpreters for Microsoft Windows machines.
The Runtime.exec() methods might not work effectively for some processes on certain platforms. Special care should be taken with native windowing, daemon, WIN16/DOS process or some shell scripts.
regards,
jarshe -
Two questions: Executing batch files and executing a JAR on boot-up.
I'm working with Windows XP and and currently I'm having a friend test this on Vista as well. I can't seem to find how to execute a batch file using Runtime.exec(). So far I've been passing the absolute pathname of the batch file as the argument to exec(), but it doens't seem to run, so I'm assuming there's another way.
Second question, how do I get a JAR file to start running whenever the user turns on the PC?
Thanks.I'm working with Windows XP and and currently I'm
having a friend test this on Vista as well. I can't
seem to find how to execute a batch file using
Runtime.exec(). So far I've been passing the
absolute pathname of the batch file as the argument
to exec(), but it doens't seem to run, so I'm
assuming there's another way.Are you using just Runtime.exec() or have you tried Runtime.getRuntime().exec()? If not, try that and see what happens.
Second question, how do I get a JAR file to start
running whenever the user turns on the PC?As far as I know, you can't do that programatically. You have to edit settings on your computer but I am not entirely sure.
Thanks. -
Execute Batch Files, DOS Commands etc. from my Java Application
Can someone show me how it works?
I dont need any return values, just execute a Batch File or a Command
Thx, GuardianHi Luke,
Just wanna add 2 things to what you've written. (your sample code)
Point 1pro.waitFor(); should be called before attempting the read anything from the process' InputStream if you don't want to lose anything your process might print out. When Runtime.getRuntime.exec("your_command") is executed, the resulting process is just another runaway thread unless you tell you calling thread to wait for this process to end before proceeding further. This is where waitFor() comes in.
Point 2Runtime.getRuntime().exec("C:\\command.com /C mybat.bat"); works but it is pretty platform dependent. If you need to write platform independent stuff, you could just drop the command.com stuff and go right to the batch file or the command you need to execute. I've managed to just survive with Runtime.getRuntime().exec("mybat.bat");Regards,
Noel -
Can Java execute batch file outside of current JVM in separate process tree
Hi,
Does anyone know how to run programs from Java as separate processes that will not die when the spawning java program exits (JVM exits).
The problem I have with using Runtime.exec is it spawns only child processes under the current running JVM, thus when the origonal program that called Runtime.exec ends so does all child processes.
Basically I want to start a DOS batch file from my Java application, my Java application will then immediately exit (calling System.exit(0) ). The batch program will continue to run, its does some file clean up, create's some new files and deletes the old jar (containing the main app), it then rebuilds the main app jar and and executes the main class and then exits itself.
I've also tried the apache.tomcat.jni.Proc :-
long pool = Pool.create( new Long(0).longValue() );
long pa = Procattr.create( pool );
Procattr.dirSet( pa, "c:\\temp\\updater\\");
Procattr.cmdtypeSet( pa, Proc.APR_SHELLCM );
Procattr.detachSet( pa, 1 );
long proc = Proc.alloc( pool );
Proc.create( proc, "test.bat", new String[]{"test.bat"}, null, pa, pool );
System.exit(0);
The detach option doesn't work, if I take it off then the bat file runs and stops the JVM exiting, if I leave it in the batch file never gets called.
Is this possible in Java. Can java start master process on Windows XP JDK1.5+?
Cheers
Chris.Well I found the answer elsewhere (java.net) thought I'd post it here for future visitors who might be experience the same problem.
Basically Runtime can do this however it must be done the following way :-
The java:-
public class Main {
public static void main(String[] args) throws Exception {
Process p=Runtime.getRuntime().exec("cmd /c c:\\test.bat");
System.out.println("done");
System.out.println("quitting");
System.exit(0);
}The batch:-
@echo off
PING 1.1.1.1 -n 1 -w 5000 >nul
java -cp "c:\ " MainThe important line that makes the whole thing work is :-
@echo offIf this line is missing then the whole things locks up (must be the io streams getting used)
Also this code can not be run from an IDE (well at least not from Intellj) as it also locks up.
It must be run from a command prompt or jar.
Also note that any commands in the batch file must have there output redirected to "nul" otherwise Windows kills the cmd as soon as it trys to output to a dead stream (dead because the Java has exited). for example :-
@echo off
PING 1.1.1.1 -n 1 -w 10000 >nul
cd %1
del /F /Q *.* >nul
move /Y new\*.* >nul
RD /Q /S new >nul
PING 1.1.1.1 -n 1 -w 1000 >nul
java -cp "c:\ " Main
exit -
Executing batch file !!
Hi
I'm trying execute a batch file on win200 from java.
here is the code:
public class MyCommand {
public static void main( String args[] ) {
Runtime r = Runtime.getRuntime();
Process p = null;
try {
p = r.exec("C:\\testing\\fileone.bat");
} catch( Exception e ) {
e.printStackTrace();
fileone.bat is:
del c:\consar\proc.001
It doesn't workHi
I'm trying execute a batch file on win200 from java.
here is the code:
public class MyCommand
public static void main( String args[] )
try
Process p = Runtimer.getRuntime().exec("C:\\testing\\fileone.bat");
p.waitFor();
catch( Exception e )
e.printStackTrace();
} // MyCommand>
fileone.bat is:
del c:\consar\proc.001
It doesn't work
Maybe you are looking for
-
How do I generate a report (Active Vendors -- Vendor Code)?
Dear SAP Friends, May I ask how do I generate a report showing all active vendors with their corresponing vendor code in SAP? Thank you very much in advance, Albert
-
Does location services continue to drain battery power if the phone is in standby? Does it also drain power if you're using an app that does not use location services? Thanks.
-
Can someone help, with in app purchase ?
so i play clash of clans, and i bought a couple gem bags, in-app purchase with a gift card $30 was all good then i bought a couple more and got the gems with my credit card, i must of pressed it twice or something but cancled it and didnt complete th
-
I'm not very good with computers and need help. My LR 4 and LR 5 upgrade are on disk but my new MacBook Pro doesn't use disk. How do I load LR on my new computer? Also, how do I get the photos from LR on my old computer to the new computer?
-
Error Message: Plug in requires system extension
In the last few days, When I try to access my web site, http://www.stephiebaer.com, using the Mozilla Firefox browser,I get this message: Quick time Plugin requires the Quicktime system extension version 5 or later. Quicktime is available from http:/