设置命令将所有参数放入%1%2%3等

时间:2016-04-15 15:25:31

标签: batch-file

几年前我记得使用一个set命令,它将一个由空格分隔的变量,将每个值分配给%1 %2 %3

我从具有以下结构的文件中读取一行

"log file"  "B:\Current\log" "B:\Backup\warehouse" "Warehouse_Day"   

并将其分配给变量,例如params,然后执行臭名昭着的set命令params,然后自动地我可以独立使用每个参数。

如果我echo %1,我会得到log file 如果我做echo %2,我会得到B:\Current\log
如果我做echo %3,我会得到B:\Backup\warehouse

有人记得或知道命令是什么吗?

1 个答案:

答案 0 :(得分:3)

当我理解你的时候,这就是你的想法:

@echo off
set /p "params="<params.bat
echo %params%
call :program %params%
echo %1, %2, %3, %4 are gone.
echo --%param4%--
goto :eof

:program
echo %1
echo %2
echo %3
echo %4
set param4=%4

当然%n参数只在被调用的子程序中有效,并且当你从子程序返回时它们就消失了(但是你可以从它们中导出其他变量)。

如果您需要删除引号,请使用%~1%~2等。