向各位大佬求一个批处理
bat吧
全部回复
仅看楼主
level 3
怎么样可以实现把doc文件标题改成文件名?
2021年04月29日 01点04分 1
level 3
各位大佬,救救孩子吧
2021年04月29日 02点04分 2
level 9
怎么知道哪个是标题,第1页第1行文字内容?
2021年04月29日 02点04分 3
对的对的
2021年04月29日 03点04分
把文档第一页第一行内容替换为文件名也可以的!
2021年04月29日 03点04分
level 9
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
/*&cls&echo off&mode con lines=5000
rem 将多个word文档/doc文档分别用自身里面的第一行文字内容作为文件名称进行重命名
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
cd /d "%~dp0"
where "%cd%:*.doc" "%cd%:*.docx"|cscript -nologo -e:jscript "%~f0"
echo;%#% +%$%%$%/%_% %z%
pause
exit
*/
var word=null;
try{
word=new ActiveXObject('Word.Application');
}catch(e){WSH.StdErr.WriteLine('MS Word is not installed');WSH.Quit();}
word.DisplayAlerts=false;
word.Visible=true;
var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream){
var it=WSH.StdIn.ReadLine();
var docfile=fso.GetFile(it);
var ext=fso.GetExtensionName(it);
if(docfile.Name.substring(0,2) != '~$'){
var doc=word.Documents.Open(docfile.Path);
var pc=doc.Paragraphs.Count
for(var i=1;i<=pc;i++){
var pt=trim(doc.Paragraphs(i).Range.Text);
if(pt != ''){
var newname=pt+(ext==''?'':'.'+ext);
if(docfile.Name.toLowerCase() != newname.toLowerCase()){
var line=docfile.Name+' --> '+newname;
WSH.StdErr.WriteLine(line);
}
break;
}
}
doc.Close();
}
}
word.Quit();
WSH.Quit();
function trim(z){
var s='';
s=z.replace(/^\s*|\s*/g,'');
s=s.replace(/[\f\n\r\v]/g,'');
s=s.replace(/\t/g,' ');
s=s.replace(/\?/g,'?');
s=s.replace(/:/g,':');
s=s.replace(/"/g,'”');
s=s.replace(/</g,'《');
s=s.replace(/>/g,'》');
s=s.replace(/[\\\/\*\?\|]/g, '#');
return s;
}
2021年04月29日 10点04分 4
1