如何在命令提示符下获取文件名

当前,我的程序应该执行以下操作

  1. 在for循环中,检查第一个附件的文件大小。
  2. 检查文件大小后,我将保存正在读取的文件的名称。
  3. 执行算法以计算所需大小,并在其后面添加KB。
  4. 使用ImageMagick选择所需的路径输出,所需的文件大小和输入文件名
for %S in Images\RAW_IMAGE\*.jpg) do set outsize=%~zS & set name=%~nxS  & set /a outsize=(outsize*80/100)/1024 & set outsize=%outsize%KB & cd Images\RAW_IMAGE & mogrify -path Images\COMpressed_IMAGE  -define jpeg:extent=%outsize% %name%

出于某种原因,运行它后出现此错误

  

:迁移:无法打开图像'%name%'

它应该是文件名,因为我已经逐步测试了单个文件的代码,并且可以正常工作。

我怀疑由于缺乏对CMD中代码工作方式的了解,因此不会更新大号和名称值。

如果有人能给我一些我做错事情的提示,我将不胜感激。

mengfanxiang123 回答:如何在命令提示符下获取文件名

我没有mogrify,所以我无法测试该批处理文件,因此您需要为我们进行测试。

@echo off
setlocal enabledelayedexpansion
for %%i in (.\Images\RAW_IMAGE\*.jpg) do (
    set outsize=%%~zi
    set /a outsize=(outsize*80/100^)/1024
    set "name=%%~nxi"
    pushd .\Images\RAW_IMAGE
    mogrify -path Images\COMPRESSED_IMAGE  -define jpeg:extent=!outsize!KB !name!
    popd
)
本文链接:https://www.f2er.com/3138438.html

大家都在问