Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 修改批处理文件中的参数列表_Windows_Batch File_Command Line - Fatal编程技术网

Windows 修改批处理文件中的参数列表

Windows 修改批处理文件中的参数列表,windows,batch-file,command-line,Windows,Batch File,Command Line,我正在创建一个批处理文件,它接受一个参数,后跟一个文件名列表。我想将文件名列表传递给批处理文件中的另一个可执行文件,但不想同时传递第一个参数 像这样: Usage: LaunchTest.bat <config file> files ... 知道如何从%*中删除参数,或构造任意长度的参数列表以传递给命令吗 谢谢,新年快乐。@ECHO OFF @echo off echo config file: %~1 setlocal enableDelayedExpansion set

我正在创建一个批处理文件,它接受一个参数,后跟一个文件名列表。我想将文件名列表传递给批处理文件中的另一个可执行文件,但不想同时传递第一个参数

像这样:

Usage: LaunchTest.bat <config file> files ...
知道如何从%*中删除参数,或构造任意长度的参数列表以传递给命令吗

谢谢,新年快乐。

@ECHO OFF
@echo off

echo config file: %~1

setlocal enableDelayedExpansion
set "rest_of_line="
for %%a in (%*) do (
    if !.!==. (
        set "rest_of_line=!rest_of_line! %%a"
    )
    set .=.
)
endlocal && (
    set "rest_of_line=%rest_of_line%"
)
echo %rest_of_line%
SETLOCAL 设置参数=%* 调用集参数=%%参数:**%1=%% 回显%parms:~1% 回声========第二路 SETLOCAL enabledelayedexpansion 设置参数=%* 设置参数=!参数:*%1=! 回显%parms:~1% 后藤:EOF
有两种方法-使用和不使用delayedexpansion。

这很有效,而且在传递每个参数之前,我还可以选择对其进行调整。我一点也不懂语法,尽管我对批处理文件语法只有非常基本的了解。
@echo off

echo config file: %~1

setlocal enableDelayedExpansion
set "rest_of_line="
for %%a in (%*) do (
    if !.!==. (
        set "rest_of_line=!rest_of_line! %%a"
    )
    set .=.
)
endlocal && (
    set "rest_of_line=%rest_of_line%"
)
echo %rest_of_line%