我有一个批处理文件,它将目录路径作为参数。用于循环字符串替换的批处理文件
在该文件夹中,有任何数量的.ai.pdf或.pdf文件需要转换为jpg文件。转换不是我的问题(我正在使用imageMagick),但删除完整的扩展名是。
我需要能够从文件名中取出完整的.ai.pdf(7个字符)或.pdf(4个字符)并替换为.jpg我不能在for循环中使用〜n因为它不会在.ai.pdf中产生.ai.pdf(结果在文件名.ai中,我只需要文件名)
关于这个 在StackOverFlow上有不少文章StackOverFlow Example
但无论我尝试尝试什么,在从文件名截断适当的扩展名时,出现错误。
这是我的代码。这是我创建的第一个主要批处理文件,因此我对任何东西都是开放的,除了安装更多的程序来完成这项工作。
杀死我的事情是,我有这个工作,并在从一台服务器到另一台洗牌,一个星期的假期,工作代码得到了....错位。
@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!是无效的替代
任何想法?谢谢您的帮助!
这是关于我认真考虑使用其他(任何其他)脚本语言的一点。真令人恼火的是,如何在cmd脚本中做这样的事情令人费解。 –
使用!可变扩展,而不是% –