我正在开始研究一个程序,这个程序可能最自然地被描述为数据库表的一批计算,并且将每月执行一次.所有输入都在Oracle数据库表中,所有输出都将输出到Oracle数据库表.该计划应在未来许多年内保持可维护状态.
将其实现为一系列存储过程似乎是直截了当的,每个存储过程都执行合理的转换,例如根据一些业务规则在部门之间分配成本.然后我可以编写单元测试来检查每个转换的输出是否符合我的预期.
在PL/SQL中完成所有操作是不是一个坏主意?您是否愿意在典型的面向对象编程语言(例如C#)中进行繁重的批量计算?使用像PL/SQL这样的以数据库为中心的编程语言是不是更具表现力?
问题规范:
给定一个目录,我想遍历目录及其非隐藏的子目录,
并在非隐藏文件的名称中添加一个漩涡哈希.
如果脚本重新运行,它将用新的哈希替换旧哈希.
<filename>.<extension>==><filename>.<a-whirlpool-hash>.<extension>
<filename>.<old-hash>.<extension>==><filename>.<new-hash>.<extension>
题:
a)你会怎么做?
b)在您可用的所有方法中,是什么让您的方法最合适?
判决:
谢谢大家,我选择了SeigeX的答案,因为它具有速度和便携性.
它在经验上比其他bash变种更快,
并且它在我的Mac OS X机器上没有改变.
我想要做的是转换存储在许多不同文件夹中的.ogg文件.我需要批处理脚本做的是从第一个文件夹和文件,转换它,然后继续到文件夹中的下一个文件.此外,在转换过程中会创建一个wave文件,因此我需要在文件转换结束时将其与原始.ogg文件一起删除.到目前为止这是我的代码.它遍历执行oggdec的每个文件夹和文件,生成大量的波形文件.我需要脚本一次只做一个文件夹和一个文件
for /r %%i in (*.ogg) do oggdec "%%i"
for /r %%i in (*.ogg) do del "%%i"
for /r %%i in (*.wav) do lame -m m "%%i"
for /r %%i in (*.wav) do del "%%i"
@echo off
etlocal enabledelayedexpansion
set deletestring=.wav
echo Ready to start
echo.
echo.
for /f "delims==" %%F in ('dir /b /s /a-d ^| find "%deletestring%"') do (
set oldfilename=%%~nxF
set pathname=%%~dpF
set newfilename=!oldfilename:%deletestring%=!
Ren "!pathname!!oldfilename!" "!newfilename!"
)
echo.
echo All done
(
Run Code Online (Sandbox Code Playgroud)
上面的代码几乎可以工作,最终的结果是工作,但不幸的是我需要它一次只转换一个文件并删除原来的.ogg和.wav,然后移动到下一个.ogg文件.所以我需要它跟随此规则获取第一个文件夹和第一个.ogg文件执行oggdec文件生成.wav del..文件执行lame -mm .wav文件生成.mp3文件del …
我csv在.xls格式中需要大量的文件.是否可以使用宏运行批量转换或使用其他语言进行最佳操作?
我使用此代码http://www.ozgrid.com/forum/showthread.php?t=71409&p=369573#post369573来引用我的目录,但我不确定打开每个文件并保存它们的命令.这就是我所拥有的:
Sub batchconvertcsvxls()
Dim wb As Workbook
Dim CSVCount As Integer
Dim myVar As String
myVar = FileList("C:\Documents and Settings\alistairw\My Documents\csvxlstest")
For i = LBound(myVar) To UBound(myVar)
With wb
Application.Workbooks.OpenText 'How do I reference the myvar string ?
wb.SaveAs '....
End With
Next
End Sub
Function FileList(fldr As String, Optional fltr As String = "*.*") As Variant
Dim sTemp As String, sHldr As String
If Right$(fldr, 1) <> "\" Then fldr = fldr …Run Code Online (Sandbox Code Playgroud) 我在我的DAO类中使用以下事务代码单元在Hibernate中插入多行.
@Override
@SuppressWarnings("unchecked")
@Transactional(readOnly = false, propagation=Propagation.REQUIRES_NEW, rollbackFor={Throwable.class})
public String insertZoneCharge(Long zoneId, List<Object[]> items)
{
Session session=sessionFactory.openSession();
session.beginTransaction();
//Configuration configuration=new Configuration();
//configuration.setProperty("hibernate.jdbc.batch_size", "50");
int i=1;
for(Object[] o:items)
{
if(o[2]!=null&&StringUtils.isNotBlank(o[2].toString()))
{
ZoneChargePK zoneChargeId=new ZoneChargePK();
zoneChargeId.setWeightId(Long.parseLong(o[0].toString()));
zoneChargeId.setZoneId(zoneId);
model.ZoneCharge zoneCharge=new model.ZoneCharge();
zoneCharge.setZoneChargePK(zoneChargeId);
zoneCharge.setCharge(new BigDecimal(o[2].toString()).setScale(2, RoundingMode.HALF_UP));
session.save(zoneCharge);
if(++i%50==0)
{
session.flush();
session.clear();
}
}
}
session.getTransaction().commit();
session.close();
return "Data saved successfully.";
}
Run Code Online (Sandbox Code Playgroud)
此方法的参数通过JSON请求提供.我不会深入了解Oracle表的详细信息,因为它不相关.
当我提供让我们说3个值时,这个循环被迭代三次并且在相应的数据库表中创建了三行.成功完成事务后,INSERT我在控制台上看到的以下本机Oracle 语句似乎被执行了三次.
insert into WAGAFASHIONDB.ZONE_CHARGE (CHARGE, WEIGHT_ID, ZONE_ID) values (?, ?, ?)
Run Code Online (Sandbox Code Playgroud)
调试和跟踪信息如下.
DEBUG [http-apr-8080-exec-84] (SqlStatementLogger.java:104) - insert into WAGAFASHIONDB.ZONE_CHARGE …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序.必须在整个项目中更改某条路径.路径是固定的,文件可以编辑(它在.cshtml).
因此,我认为我可以使用一个批处理文件来改变所有的http://localhost.com到http://domain.com例如(我知道的相对和绝对路径,但在这里我不得不做出这样的.
我想在许多计算机上使用这个脚本,所以我不想安装应用程序并将该应用程序与脚本一起使用...只需运行.bat即可...
因此,如果你有可以在文件中进行更改的代码,那就太棒了!
要完成我的问题,这里是文件和目录的路径
MyApp MyApp/Views MyApp/Views/Index/page1.cshtml MyApp/Views/Index/page2.cshtml MyApp/Views/Another/page7.cshtml ...
我有大约50K消息希望添加到一个天蓝色的队列中。
我不确定我拥有的代码是否安全。感觉/闻起来不好。
基本上,给出POCO的集合,将POCO序列化为一些json,然后将该json文本添加到队列中。
public void AddMessage(T content)
{
content.ShouldNotBe(null);
var json = JsonConvert.SerializeObject(content);
var message = new CloudQueueMessage(json);
Queue.AddMessage(message);
}
public void AddMessages(ICollection<T> contents)
{
contents.ShouldNotBe(null);
Parallel.ForEach(contents, AddMessage);
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我我应该做些什么来解决此问题-最重要的是,为什么?
我觉得在这种情况下,队列可能不是线程安全的。
以下是文件"vsbat"的内容
call "C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
call path.bat
dea usev bis
cd ana
call b-env-i.bat
Run Code Online (Sandbox Code Playgroud)
执行此批处理文件时,执行在以下步骤后停止.
dea usev bis
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助指出这里出了什么问题以及我如何能够执行所有命令.请注意,上述命令(dea usev bis)工作正常(在批处理中,如果单独执行).dea是可执行文件的名称,"usv bis"是"dea"exe的运行时参数.
我正在运行Windows 7.
澄清:
当我运行vsbat时,在第三次调用"dea usev bis"成功执行后,批处理文件停止执行.这是以下调用(它们是VS.bat的一部分)不执行
cd ana
叫b-env-i.bat
请注意,调用"dea usev bis"需要大约20秒才能执行,无论是单独运行还是作为脚本的一部分运行.
更新:
我尝试了paxdiablo的建议,结果如下:
[C:\dea]for %i in (dea.cmd) do @echo %~$PATH:i
ECHO is on.
[C:\dea]for %i in (dea.bat) do @echo %~$PATH:i
ECHO is on.
[C:\dea]for %i in (dea.exe) do @echo %~$PATH:i
C:\dea\bin\dea.exe
[C:\dea]where dea.exe
C:\dea\bin\dea.exe
C:\dea\bin\dea.exe.1
C:\dea\bin\dea.exe.ia64
Run Code Online (Sandbox Code Playgroud)
当我通过以下显式运行它时,我仍然遇到同样的问题
c:\dea\bin\dea.exe usev bis
Run Code Online (Sandbox Code Playgroud)
而且,正如我之前所说,更改脚本call dea也不能解决问题. …
我有大量的PDF(6,000 +),需要从CMYK颜色配置文件转换为RGB。是否有任何脚本可以完成此任务,并且理想情况下没有(太)明显的颜色变化?PDF是最初用于打印的书文件,正准备作为电子书加载。
我发现了一些InDesign脚本可能能够做到这一点,但是从这一点开始,从原始设计文件获取和重新导出将非常耗时。另一个选择似乎是通过Adobe Acrobat运行动作,但是我还没有取得任何成功。
如果有人可以担保,我也发现了Java的这一点:http : //www.aspose.com/docs/display/pdfjava/Changing+Color+space+of+a+PDF+document
有什么建议或见解吗?
我需要通过将它们传递给matlab或python脚本来处理目录中的一组文件.
对于目录中的每个输入文件FileName.IN,我需要获取输出文件FileName.OUT.
如果解决方案是Python或bash脚本并不重要.
为了实现我的目标,我尝试了GNU Make(或Python Snakemake),但是我有点卡在它上面.看起来我可以说GNU Make要做: "嘿,对于每个输出(目标)文件FileName.out搜索相应的FileName.IN(先决条件)".
然而,如前所述,我想要做的恰恰相反.
make(或snakemake)正确的选择?我的makefile代码看起来像这样,但它不能完成这项工作(我是GNU make的新手):
in_files = *.IN
out_files = *.out
$(out_files) : $(in_files)
matlab -nosplash -nodesktop -r "a_matlab_function('$<','$@')"
Run Code Online (Sandbox Code Playgroud)