如何在命令提示符下获取文件名
How to get name of file in Command prompt
目前,我的程序应该执行以下操作
- 在 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: unable to open image '%name%'
它应该是文件名,因为我已经针对单个文件逐步测试了代码并且它有效。
我怀疑是由于我不了解代码在 CMD 中的工作原理,所以没有更新 outsize 和名称值。
如果有人能给我一些我做错的地方,我将不胜感激。
我没有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
)
目前,我的程序应该执行以下操作
- 在 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: unable to open image '%name%'
它应该是文件名,因为我已经针对单个文件逐步测试了代码并且它有效。
我怀疑是由于我不了解代码在 CMD 中的工作原理,所以没有更新 outsize 和名称值。
如果有人能给我一些我做错的地方,我将不胜感激。
我没有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
)