如何使用逗号分隔符调用批处理文件中的参数

qui*_*kxi 12 batch-file

我想用逗号分隔的参数调用批处理文件.我怎么能做到这一点?

我希望它像这个例子.

我有一个带脚本的text.bat:

@echo off
set test=%1
echo Sample %test% batch.
Run Code Online (Sandbox Code Playgroud)

我想像这样运行批处理:

c:\text.bat this,is,sample
Run Code Online (Sandbox Code Playgroud)

我期待这样的结果:

Sample this,is,sample batch.
Run Code Online (Sandbox Code Playgroud)

知道我怎么能做到这一点?

谢谢.

Han*_*ood 16

哇!我不知道逗号表现得那样.

你有两个选择.

您可以使用此脚本:

@echo off
set test=%~1
echo Sample %test% batch.
Run Code Online (Sandbox Code Playgroud)

并运行它:

C:\text.bat "this,is,test"
Run Code Online (Sandbox Code Playgroud)

%~1代表不带引号的第一个参数.引号将逗号分隔的列表分组为单个参数.

要么

您可以使用此脚本:

@echo off
set test=%*
echo Sample %test% batch.
Run Code Online (Sandbox Code Playgroud)

并运行它:

C:\text.bat this,is,test
Run Code Online (Sandbox Code Playgroud)

%*代表的命令行参数,因为他们打出来.

  • 不仅是`,`而且```和`=`因为[它们都是cmd的分隔符](https://ss64.com/nt/syntax-esc.html) (2认同)

Aac*_*ini 10

在批处理文件中,参数分隔符除了空格外还有逗号,分号和等号,因此没有直接的方法可以做到这一点.唯一的选择是将参数括在引号之间:c:\text.bat "this,is,sample"并使用%~1的参数来消除引号:set test=%~1.