Serge Yolkin
|
Posted: Wed Oct 24, 2012 02:51 Post subject: |
|
|
Немного не в тему, но вот скрипт, упрощенные версии которого я предлагал выше (принимает параметр %S) Code: | <?xml version="1.0" standalone="yes" encoding="utf-8"?>
<job id="ren" version="0.4">
<object id="f" progid="Scripting.FileSystemObject" />
<script type="text/jscript" language="JScript"><![CDATA[
var n=[],o;
for(var i=0;i<WScript.Arguments.length;i++){
o=fo(WScript.Arguments(i));
if(o&&fm(o))fr(o,fo(n[n.length-1]));
}
function fm(e){
var t=fn(e);
if(n.join('?').match(e.name))return false;
else n[n.length]=t;
return true;
}
function fn(e){
var t=e.name;
if(t.substring(t.length-4)=='.bak')return(t.substring(0,t.length-4));
else return(t+'.bak');
}
function fo(e){
if(f.fileExists(e))return(f.getFile(e));
else if(f.folderExists(e))return(f.getFolder(e));
else return false;
}
function fr(x,y){
if(y){
var r=Math.random(),t=x.name;
x.name=r;
y.name=t;
}x.name=n[n.length-1];
}
]]></script>
</job> | Переименовывает файлы/папки добавляя (или убирая, если уже есть) расширение .bak. Особенности:
1. Допустим, есть два файла name и name.bak - скрипт поменяет их местами во всех трёх случаях: а). если передать ему name; б). если передать name.bak и в). если передать оба файла (двойного переименования не будет).
2. Допустим, есть папка name и файл name.bak - скрипту пофиг, где файл, а где папка, всё равно переименует (поменяет имена местами) и то, и другое.
Область применения - переточка проектов из нескольких связанных файлов, например, русификация (но не только). Если изменённые файлы/папки имеют неизменённые backup (bak) копии, можно быстро переключаться между двумя вариантами: выделяем файлы по расширению .bak и выполняем скрипт. |
|