我有一个将目录路径作为参数的批处理文件。
在该文件夹中,我需要将任意数量的 .ai.pdf 或 .pdf 文件转换为 jpg 文件。转换不是我的问题(我正在使用 imageMagick),但删除完整的扩展是。
我需要能够从文件名中删除完整的 .ai.pdf(7 个字符)或 .pdf(4 个字符)并将其替换为 .jpg 我不能在 for 循环中仅使用 ~n,因为它不会在有 .ai.pdf 的实例中删除 .ai(导致文件名.ai,我只需要文件名)
StackOverFlow 上有很多关于这个 StackOverFlow 示例的帖子
但无论我尝试什么,在从文件名中截断适当数量的扩展名时都会出错。
这是我的代码。这是我创建的第一个主要批处理文件,所以我对任何事情都持开放态度,除了安装更多程序来完成这项工作。
杀死我的事情是,我有这个工作,并且在从一台服务器到另一台服务器的洗牌和一周的假期中,工作代码被......放错了位置。
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set dir1=%1
echo recieved !dir1!
for /R %dir1% %%a in (*.pdf) DO (
echo file found !a!
set b=th_%%~nxa
if x%b:ai.pdf=%==x%b% set b=%%~dpa!b:~0,-7!
if not x%b:ai.pdf=%==x%b% set b=%%~dpa!b:~0,-4!
REM convert -density 64 "%%a" +matte -resize 15%% "!b!.jpg"
@echo !b! converted
)
ENDLOCAL
该文件告诉我 %~dpa!b:~0,-7! 是无效的替换
有任何想法吗?谢谢您的帮助!