0

批处理文件必须首先处理并打印出数据文件中的一些数据,以便我选择适当的参数 %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 之间的所有行(包括两个字符串),但无论我使用 set /p 命令(%1、%%1、%1%、...)为 pattern1 尝试的参数格式如何,它不起作用。

4

1 回答 1

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%"
于 2013-09-18T14:52:28.967 回答