Windows 为什么在批处理参数替换中使用path运算符是无效的
我有一个批处理文件,它应该得到一个目录,并使用我的应用程序处理其中的所有jpeg文件 批处理文件是:Windows 为什么在批处理参数替换中使用path运算符是无效的,windows,batch-file,Windows,Batch File,我有一个批处理文件,它应该得到一个目录,并使用我的应用程序处理其中的所有jpeg文件 批处理文件是: for %%I in (%1\*.jpg) do ( bin\process.exe %%I "%~dpI\output\%~nxI" ) 但是,当我运行此批处理文件时,出现以下错误: 批处理参数中path运算符的以下用法 替换无效:%~dpI\output\%~nxI” 我读了格式说明符,它说: %~dpI - expands %I to a drive letter and p
for %%I in (%1\*.jpg) do (
bin\process.exe %%I "%~dpI\output\%~nxI"
)
但是,当我运行此批处理文件时,出现以下错误:
批处理参数中path运算符的以下用法
替换无效:%~dpI\output\%~nxI”
我读了格式说明符,它说:
%~dpI - expands %I to a drive letter and path only
%~nxI - expands %I to a file name and extension only
基于此,语法应该是正确的吗
问题是什么?在批处理文件中,使用for循环变量时需要两个%symbol。像%I这样的变量只能用于命令行。您应该说
for %%I in (%1\*.jpg) do (
bin\process.exe %%I "%%~dpI\output\%%~nxI"
)