功能:我们纳品时需要手工删除目录中的Scc文件并将所有文件的只读属性变成读写,工具能简化这个机械无聊的过程。
工具概况:用JavaScript书写的Windows Script Host脚本,在Win2K和WinXp下可独立运行,无须额外支持。绿色,不修改注册表。大小4K。
用法:
首先将附件包中的folderSweep.js放到本地.
用文本编辑器打开这个文件,找到第六行,将变量NEW_FOLDER_DEST指向的地址修改为你想放置新目录的地址,注意目录分隔符的书写,例:var NEW_FOLDER_DEST="D:\",var NEW_FOLDER_DEST="C:\aa\"。然后保存。
其次,将你想要处理的目录拖曳到folderSweep.js或者其快捷方式上,拖曳方式左右键均可,程序处理完毕后会弹出对话框提示.处理后的新目录和Log会出现在你指定的目录中.
注意:指定目录中与源目录同名的目录,请在处理开始删除.处理中出现问题请告诉我.我的E-MAil:junglesong@gmail.com
源码如下:
// Author:junglesong
// Version:2006/03/04
// E-mail:junglesong@gmail.com
// You can change this to you wanna position.Pay Attention To "\"
var NEW_FOLDER_DEST="D:\Documents and Settings\Administrator\デスクトップ\";
// Get Argument
var objArgs = WScript.Arguments;
if (objArgs.length>1){
WScript.Echo("Only one argument is permitted!");
WScript.Quit(1);
}
var firstArgument=objArgs(0);
if(isFolder(firstArgument)==false){
WScript.Echo("Only folder is permitted!");
WScript.Quit(1);
}
var srcSpec=firstArgument;
var destSpec=NEW_FOLDER_DEST;
copyFolder(srcSpec,destSpec);
var logFilePath=destSpec+"\folderSweeplog.csv";
var logInfo="No.,Name,Attribute Change,Prcess,FilePath\r\n";
var logLine=0;
var newFolderSpec=getNewFolderPath(srcSpec,destSpec);
traversalFolder(newFolderSpec);
sweepFolderFileList(newFolderSpec);
writeLogFile(logFilePath,logInfo);
WScript.Echo("The Folder:"+newFolderSpec+"\n is sweep completed!");
function isFolder(folderSpec){
var fso=WScript.CreateObject("Scripting.FileSystemObject");
return(fso.FolderExists(folderSpec));
}
function copyFolder(fromFolder,toFolder)
{
var fso=WScript.CreateObject("Scripting.FileSystemObject");
fso.CopyFolder(fromFolder,toFolder);
}
function getNewFolderPath(fromFolder,toFolder){
var fso=WScript.CreateObject("Scripting.FileSystemObject");
var folderName=fso.GetFolder(fromFolder);
return(toFolder+folderName.Name+"\");
}
function traversalFolder(destFolder)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var folderObj = fso.GetFolder(destFolder);
var fCollection = new Enumerator(folderObj.SubFolders);
var subFolder ="";
for (; !fCollection.atEnd(); fCollection.moveNext())
{
subFolder=fCollection.item();
sweepFolderFileList(subFolder);
traversalFolder(subFolder);
}
}
function sweepFolderFileList(folderspec)
{
var fso, f, f1, fc;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.files);
var filePath = "";
for (; !fc.atEnd(); fc.moveNext()){
filePath=fc.item().Path;
fileProcess(filePath);
}
}
function fileProcess(fileSpec){
var fso= new ActiveXObject("Scripting.FileSystemObject");
var file=fso.GetFile(fileSpec);
logLine+=1;
logInfo+=logLine.toString()+","+file.Name+",";
//WScript.Echo(logInfo);
// Change ReadOnly Attribute to ReadWrite
try{
if(file.attributes && 33){
file.attributes=file.attributes-1;
logInfo+="ReadOnly->ReadWrite,";
}
else{
logInfo+=",";
}
}
catch(e){
WScript.Echo("Attribute"+filespec);
}
// Delete Scc File
if(fileSpec.indexOf(".")!=-1){
var fileExt=fileSpec.substring(fileSpec.indexOf(".")+1,fileSpec.length);
fileExt=fileExt.toUpperCase();
if(fileExt=="SCC"){
DeleteAFile(fileSpec);
logInfo+="Removed,";
}
else{
logInfo+=",";
}
}
logInfo+=fileSpec+"\r\n";
}
function DeleteAFile(filespec)
{
try{
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.DeleteFile(filespec);
}
catch(e){
//WScript.Echo(filespec);
}
}
function writeLogFile(fileName,fileConcept){
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile(fileName, true);
tf.Write (fileConcept);
tf.Close();
}
下载地址:http://www.blogjava.net/Files/junglesong/folderSweep.rar
