我有2行,我必须每天多次在cmd中运行。这些线条类似于下面的那些:
RewriteRule (.*) http://www.siteb.com/$1 [R=301,L]
我想到了两种自动化方法。第一个是批处理文件,第二个是发送密钥。我已经将一个文件标记为something.bat并粘贴在上面的两行中。这会在cmd中快速打开一个窗口并再次关闭(即使我在结尾处添加了暂停),并且没有做我所期望的事情,因为我可以告诉它运行第一个命令然后什么都没有。
发送密钥方法似乎只运行第一行,我试过:
set_someclasspaths.bat
java -Xmx1024m foo.bar.stuff.Dashboard -var varone -from 20160701 -to 20160731 -outputdir c:\stuff -ir @ -dashboard
我的批处理文件和java能力充其量是可疑的,似乎解决这个问题的最简单方法是批处理文件,所以我更愿意这样做。
我想我将参数传递给第二行的java脚本,我不确定是否有这种语法,并且没有学习一些java和批处理文件的东西我已经停止了。
为了澄清,我的问题有两个方面:首先是批处理文件更好的方法吗?第二,为什么这不起作用?
非常感谢。
答案 0 :(得分:3)
当您从另一个批处理文件中调用一个批处理文件时,控制权将传递给第二个批处理文件并且不会返回。
如果您希望返回,则需要传递b = rand(100);
using Distributions
indices = sample(1:1000, 100, replace=false) ## random indices for where the elements in a slice of the first dimension of A will match those in b.
## 2D example
A = rand(1000,100);
A[indices,1] = b; ## set 100 random rows of A will now have their first element match one element of b
Ared = A[findin(A[:,1], b),:] ## find the rows in A where the first element is in B. Return the full values of those rows.
## 3D example
A3 = rand(1000,10,100);
A3[indices,1,1] = b;
Ared3 = A3[findin(A[:,1,1], b),:,:];
julia> size(Ared3)
(100,10,100)
,因此您的批处理文件将如下所示:
call
答案 1 :(得分:1)
怎么样:
Sub CreateAndRun()
Dim batchContents As String
Dim batchFile As String
Dim FF As Byte
batchFile = Environ$("USERPROFILE") & "\temp.bat"
batchContents = "CALL set_someclasspaths.bat" & vbCrLf & _
"java -Xmx1024m foo.bar.stuff.Dashboard -var varone -from 20160701 -to 20160731 -outputdir c:\stuff -ir @ -dashboard"
FF = FreeFile
Open batchFile For Output As #FF
Print #FF, batchContents
Close #FF
CreateObject("WScript.Shell").Run batchFile, 1, True
DoEvents
Kill batchFile
End Sub
答案 2 :(得分:1)
创建一个包装器批处理文件,如wrapper.bat,并将两个命令粘贴到其中:
call set_someclasspaths.bat
java -Xmx1024m foo.bar.stuff.Dashboard -var varone -from 20160701 -to 20160731 -outputdir c:\stuff -ir @ -dashboard
pause
这应该执行批处理文件和java语句,然后保持窗口打开。
您无需始终通过VBA创建批处理文件,只需在单击按钮或其他内容时执行即可。