windows - 如何在命令提示符下获取文件名
问题描述
目前,我的程序应该执行以下操作
- 在 for 循环中,检查第一个附件的文件大小。
- 检查文件大小后,我将保存正在读取的文件的名称。
- 执行算法来计算所需的大小并在其后面添加 KB。
- 使用 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%
出于某种原因,我在运行后收到此错误
: mogrify: 无法打开图像 '%name%'
它应该是文件名,因为我已经逐步测试了单个文件的代码并且它可以工作。
我怀疑由于我对代码在 CMD 中的工作方式缺乏了解,因此未更新特大号和名称值。
如果有人能给我一些关于我做错了什么的指示,我将不胜感激。
解决方案
我没有,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
)
推荐阅读
- angular - Angular 6,根据所选值从 GET http 调用中获取过滤后的数据,无需管道
- reactjs - 错误 - Windows Powershell 中的未知监听 EADDRINUSE :::5432
- javascript - 纯 html 网站的页面转换?
- python - 字符串到单个字符的数组,而不沿途转换为列表
- java - 使用 jasync-sql 执行查询时出错:“无法运行查询,因为已经有一个查询待处理”
- go - 在多包中使用记录器/配置 Golang 生产的最佳实践
- javascript - 如何为 iview ui 多选添加限制?
- android - Android:将效果附加到 SoundPool 声音?
- java - android studio 无法解码流:java.io.FileNotFoundException:
- javascript - Firebase once() 多次触发