将cmd行输入参数传递给在Win7批处理文件中运行的GNU脚本

时间:2013-09-18 13:51:25

标签: batch-file parameters cmd format set

批处理文件必须首先处理并从数据文件中打印出一些数据,让我选择适当的参数%2和%3供以后使用。接下来,我必须手动输入这两个选择参数。

当运行批处理文件时,我应该使用什么语法来请求和输入几个参数,可能使用Win7 Pro框上的SET / p命令,以便这些参数然后传递给期望的各种GNU实用程序%1参数格式?以下是run.bat文件及其用法的示例:

C:\run <datafile>
@set /p pattern1=Enter pattern1:
@set /p pattern2=Enter pattern2:
@awk '/%1/,/%2/' datafile

此示例应打印两个字符串pattern1和pattern2之间的所有行,包括两个字符串pattern1和pattern2,但无论我使用set / p命令(%1,%% 1,%1%,)尝试使用pattern1的参数格式。 ..),它不起作用。

1 个答案:

答案 0 :(得分:2)

%1%2等是命令行参数,你可以用它开始批处理:

run.bat "pattern1" "pattern2" "datafile"

run.bat

@echo off &setlocal
awk "/%~1/,/%~2/" "%~3"

set /p您可以交互式设置变量值:

@echo off &setlocal
set /p "pattern1=Enter first pattern: "
set /p "pattern2=Enter second pattern: "
set /p "datafile=Enter data file name: "
awk "/%pattern1%/,/%pattern2%/" "%datafile%"