我知道我可以使用%*
引用所有文件输入。
有没有办法用一个命令更改所有输入的后缀?
我想这样做:
util.bat:
my_command.exe %*:.txt
答案 0 :(得分:4)
运行call /?
时命令 CALL 输出的帮助指定了使用修饰符引用批处理文件参数的所有可能性。
无法使用命令 SET 支持的其他字符串修改操作直接修改参数列表,以获取环境变量的字符串值,并通过 SET 在命令提示符窗口中运行set /?
时输出。
答案 1 :(得分:0)
如果我理解正确,你想要的是一个脚本,用参数中给出的新扩展名(后缀)重命名一堆文件。
使用此批处理可以执行此操作,但前提是这些文件的名称中没有括号,后缀是第一个参数。
以下是代码:
RENAMER.BAT param1 param2 param3 ...
<强> CODE 强>:
@echo off
setlocal
rem Check the existence of the suffix
if "%~1"=="" (
echo Suffix is missing.
goto:EOF
) else (
set "suffix=%~1"
)
rem Removes the dot of the suffix
if "%suffix:~0,1%"=="." set "suffix=%suffix:~1%"
shift /1
:Loop
rem Check if there is still files to rename
if "%~1"=="" (
echo Task ended.
goto:EOF
) else (
set "fileName=%~n1"
)
rem Check the existence of the file
if exist "%~1" (
ren "%~1" "%fileName%.%suffix%"
) else (
echo File not found: "%~1"
)
shift /1
goto Loop
goto:EOF
虽然这个解决方案不是&#34;一个命令&#34;正如您所写,它可以保存为批处理文件,只需执行一个命令即可执行。
希望这有帮助。
答案 2 :(得分:-2)
为什么你不能使用两行代码。
Set AllARGs=%*
Set AllArgsModified=%AllARGs:.txt