一段本机上拷贝文件的JavaScript代码

本文介绍了一种使用JavaScript编写的脚本,该脚本能根据指定的唯一标识符从大量成对的(hdr/img)文件中筛选并复制所需文件到目标目录。通过正则表达式匹配与文本文件中记录的唯一ID相对应的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件都存放在一个目录中,为一对文件hdr/img,如下
RENV_002_S_0816_MR_MPRAGE_br_raw_20060929164645213_1_S19532_I25405.hdr/img
RENV_011_S_0003_MR_MPRAGE_br_raw_20050901114749730_1_S9128_I7055.hdr/img
其中文件名最后一段的I*****(4或5个数字)是唯一的。

工作需要,要挑出这个目录中的一部分文件,但是现只能给出如下的信息放在TXT文档里
RENV_011_S_0022_MPRAGE_S9616_I7721
RENV_011_S_0023_MPRAGE_S14185_I14888
这里面也有I*****(4或5个数字),所以只需提取此信息足够了,虽然还有其他信息可用。例如给出了RENV_011_S_0022_MPRAGE_S9616_I7721,需要把RENV_011_S_0022_MR_MPRAGE_br_raw_20060929164645213_1_S9616_I7721.hdr/img两个文件拷贝出来。

OK,写代码吧
//JavaScriptDocument
//
2007-10-23RenV
//
CopyFiles

//指定文件和目标目录
varlistfile="E:/DATA/dataSelected/Another10Selected.txt";
varpathtosave="E:/DATA/dataSelected/Another10Selected_test";
//给出路径,获取其中所有文件路径
varfolderspec="H:/converted/AD_patient/";

/**//***************************下面是工作代码*********************************/
varWshShell=newActiveXObject("WScript.Shell");//Shell对象

varfso1=newActiveXObject("Scripting.FileSystemObject");
varf2=fso1.OpenTextFile(listfile);//打开信息文件
//
fso1.DeleteFolder(pathtosave);//如果硬盘上没有此目录,则脚本会出错。
fso1.CreateFolder(pathtosave);//如果硬盘上已有此目录,则脚本会出错。

varreg1=/_Id...{4,5}.(hdr|img)$/;//用以匹配hdr/img文件名
varreg2=/_Id...{4,5}/;//用以匹配信息文件名(不带扩展名)

varfso2=newActiveXObject("Scripting.FileSystemObject");
varfolder=fso2.GetFolder(folderspec);
varfc=newEnumerator(folder.files);//迭代器

for(varstrName1;strName1=f2.readLine();)
...{
varstrImageID=reg2.exec(strName1);//从strName1获取ImageUID,这是唯一的
//reg2.exec("RENV_011_S_0022_MPRAGE_S9616_I7721")返回"_I7721"
//
WshShell.popup(strImageID);

for(fc.moveFirst();!fc.atEnd();fc.moveNext())
...{
varstrName2=String(fc.item());
if(strName2.indexOf(strImageID)>-1)//如果文件名中还有我们的ImageUID
...{
//fso2.copyFile(strName2,pathtosave);
WshShell.Run("cmd.exe/Kcopy"+strName2+""+pathtosave+"&&exit");
//老提示没有权限,只好出此下策,使用Shell的copy吧
}

}


}


文件存为copyfiles.js,在命令提示符中键入"cscript.exe copyfiles.js"即可执行这个JavaScript文件。

其中有个问题,就是不知为何,使用文件对象的copyFile方法拷贝文件时总提示没有权限,没办法改用cmd中的copy命令执行吧。如有哪位大虾知道怎么回事,望不吝赐教,小弟先谢过了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值