几年前我记得使用一个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
有人记得或知道命令是什么吗?
答案 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
等。