将字符串参数作为运行时参数传递

时间:2015-11-10 20:48:37

标签: batch-file

我想通过批处理文件打开特定路径。我想在运行时传递路径中的一个节点。如果我输入Google,我想在这里传递字符串参数。它将打开路径

want to pass one node in path at run time . if i give input Google.i
want to pass the string argument here. it will open the path
C:\Program Files (x86)\google\Common

我怎样才能做到这一点?

我的批处理文件:

@echo off
echo test variables 
set input = 
set /p input ="Choice"
echo C:\Program Files (x86)\%input%\Common
cd C:\Program Files (x86)\"%input%"\Common
pause

2 个答案:

答案 0 :(得分:1)

您的代码中存在以下问题:

  • =命令的变量名和set符号之间有一个 SPACE ,因此它成为变量名的一部分;因此变量input保持为空/未定义;
  • cd命令的路径中有引号,这里是禁止的字符;

以下是更正后的版本:

@echo off
echo test variables 
set "input="
set /p "input=Choice"
echo "C:\Program Files (x86)\%input%\Common"
cd "C:\Program Files (x86)\%input%\Common"
pause

我在cd命令的路径周围加上引号。虽然cd不需要,但如果缺少"",许多其他命令无法处理包含空格的路径。

要使用第一个命令行参数而不是用户输入,请删除set命令并将%input%替换为%~1~可确保删除任何周围的引号。在命令提示符中键入call /?以获取有关此内容的详细信息。

答案 1 :(得分:0)

您是说要像这样运行批处理文件。

C:\>mybatch.bat Google

如果是这样,那么您的批处理文件只会更改为此。

@echo off
echo test variables 
echo C:\Program Files (x86)\%1\Common
cd C:\Program Files (x86)\%1\Common
pause