[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何批量让文件夹下的word文件转为PDF?


如何批量让文件夹下的word文件转为PDF:求助大神!转换完的PDF名称保留word的命名名字且路径在源文件夹内,例如:6界址点成果表.docx→6界址点成果表.pdf  注:word的名称只有两个(300多个文件夹下的word名称都叫:4地籍调查表.docx、6界址点成果表.docx,仅文件夹名称不一致)

回复 1# 脑袋大
看看这个能否满足要求:
https://www.cnblogs.com/Mr-nie/p/8029085.html

TOP

不知行否
pdf不带书签
  1. @if (0)/*==(0)/* echo off
  2. cmd /u /c dir /b /s /a-d *.docx | cscript //nologo //e:jscript //u "%~f0"
  3. taskkill /F /IM winword.exe 2>nul
  4. pause&exit/b
  5. rem */@end
  6. var nil=null,f=[];
  7. while (!WScript.StdIn.AtEndOfStream) {
  8. s=WScript.StdIn.ReadLine();
  9. f.push(s);
  10. }
  11. var i,p,file,fso=GetObject("new:scripting.filesystemobject");
  12. var wa=GetObject("new:word.application");
  13. wa.Visible=false;wa.DisplayAlerts=false;wa.ScreenUpdating=false;
  14. for (i in f){
  15. p=f[i].split('.');
  16. p.pop();
  17. p.push('pdf');
  18. if (fso.FileExists(p.join('.'))){}
  19. else {
  20. file=wa.Documents.Open(f[i]);
  21. file.SaveAs2(p.join('.'),17);
  22. file.Close(false);
  23. }
  24. }
  25. wa.Visible=true;wa.DisplayAlerts=true;wa.ScreenUpdating=true;
  26. wa.Quit();wa=nil;
复制代码

TOP

本帖最后由 ppll2030 于 2023-10-12 11:27 编辑

新手村再次挑战
把以下代码保存为bat文件,放在主文件夹下即可。会自动搜索该文件夹及其子文件夹下的所有word文件并另存为PDF
  1. @echo off
  2. :vbs
  3. (echo Set fso = CreateObject^("Scripting.FileSystemObject"^)
  4. echo For i= 0 To WScript.Arguments.Count -1
  5. echo   doc = WScript.Arguments^(i^)
  6. echo   doc = fso.GetAbsolutePathName^(doc^)
  7. echo   If LCase^(Right^(doc, 4^)^) = ".doc" Or LCase^(Right^(doc, 5^)^) = ".docx" Then
  8. echo     Set objWord = CreateObject^("Word.Application"^)
  9. echo     pdfPath = FSO.GetFile^(doc^).ParentFolder
  10. echo     pdfname = fso.GetBaseName^(doc^) ^& ".pdf"
  11. echo     objWord.Visible = False
  12. echo     Set objDoc = objWord.documents.open^(doc^)
  13. echo     objDoc.saveas pdfPath ^& "\" ^& pdfname,17
  14. echo     objDoc.Close
  15. echo     objWord.Quit
  16. echo   End If
  17. echo   Next ) > Word2PDF.vbs
  18.   
  19. for /f "delims=" %%i in ('dir /b /s /a-d *.doc') do Word2PDF.vbs "%%i"
  20. del /p Word2PDF.vbs
  21. echo.&echo 当前文件夹(含子文件夹)下的所有word文档已全部转换成PDF~! &pause >NUL
复制代码
温馨提示:
如果你的word文件过多或过大,脚本效率将大大降低。
这类操作还是建议用PDF批量工具完成较好。

TOP

回复 4# ppll2030
谢谢

TOP

回复 3# Five66

感谢!

TOP

返回列表