我正在研究一个脚本,该脚本甚至在子文件夹中也可以找到数千个图像文件(对于不同的类型,我有不同类型的移动句子)应该创建一个.log
文件并在其中插入所有内容,包括当前日期和时间。
这就是我的问题,我无法使其正常工作,我将尝试很多事情来做,而且我阅读了与此相关的所有主题,但是我找不到我的错误,调试器却没有没对我说什么。
我的批处理文件是:
@ECHO OFF
SET LOGFILE=comprimir.log
call :LOG > %LOGFILE%
exit /B
:LOG
FOR /r "C:\imagemagick\image" %a in (*.jpg) do
mogrify -quality 90 -interlace PLANE -sampling-factor 4:2:0 -compress
JPEG2000 -colorspace RGB "%~a"
ECHO %DATE% %TIME%
但是出了点问题,当我尝试执行时出现此错误:
“目前预计不会”
为什么会出现此错误?
答案 0 :(得分:0)
在批处理文件中时,应使用%%A
而不是%A
。另外,您的括号在哪里?
另一个问题是,您处于代码块(for
循环)中,并且正在使用%DATE%
和%TIME%
无 delayed expansion。这是行不通的。
所以,我建议:
@echo off
setlocal EnableDelayedExpansion
set "logfile=comprimir.log"
(call :log)>%logfile%
exit /B
:log
for /R "C:\imagemagick\image" %%A in (*.jpg) do (
mogrify -quality 90 -interlace PLANE -sampling-factor 4:2:0 -compress JPEG2000 -colorspace RGB "%%~A"
echo !date! !time!
)
答案 1 :(得分:0)
我们直接从cmdline使用%
,但在批处理文件中,我们需要将它们%%
加倍。您也不必调用标签,可以通过管道直接登录。
@echo off
setlocal enabledelayedexpansion
set "log=comprimir.log"
(for /r "C:\imagemagick\image" %%a in (*.jpg) do (
mogrify -quality 90 -interlace PLANE -sampling-factor 4:2:0 -compress JPEG2000 -colorspace RGB "%%~a"
echo !date! !time!
)
)>>%log%