【问题标题】:passing variable to a batch file when called using "call" function使用“调用”函数调用时将变量传递给批处理文件
【发布时间】:2010-03-30 06:57:35
【问题描述】:

我想从另一个批处理文件中调用一个批处理文件,并且还想将一个变量传递给它。假设我想从 a.bat 调用 b.bat。我的 b.bat 复制文件。所以在从 a.bat 调用它时,我想将目标文件夹的路径传递给 b.bat。
更清楚的是,目标路径将由用户输入,因此它将存储在变量“x”中。我现在如何通过路径?

【问题讨论】:

  • 请编辑您的问题以反映您希望从 vbscript 传递变量的事实。

标签: vbscript batch-file


【解决方案1】:
rem --- a.bat ---
set /p TargetPath=Please enter destination path: 
call b.bat "%TargetPath%"

rem --- b.bat ---
echo Copying to: %~1

作为替代方案,您可以简单地在 b.bat 中使用 %TargetPath%:环境变量由子进程继承。但从灵活性和可支持性的角度来看,显式传递参数可能更好。

【讨论】:

  • 对b来说更清楚,目标路径将由用户输入,因此它将b存储在一个变量中,比如'x'。我现在如何通过路径?
  • 我用我的 html 代码试过这个:dim shell,x x="D:\d" set shell=createobject("wscript.shell") shell.run "c.bat %x%" set shell=nothing 我的 c.bat 是:xcopy %1 D:\o\ /E 它不起作用,不起作用。我正在尝试将变量从 vb 传递给批处理。你能帮帮我吗
  • @sushant -- 伙计,你需要学习如何提问!接下来我们将了解到您的 HTML 显示在 Windows Mobile 上的通知气泡中,并且您希望在通过 ActiveSync 连接到它的桌面上运行批处理文件:)
  • @sushant -- 我不了解 VB,但要完成您的任务,您只需将变量值括在引号中并将其附加到命令行。像这样的东西:shell.run "c.bat " + """ + x + """,虽然我不知道字符串连接是如何在 VB 中编写的
  • 其实我尝试了两种方法:通过 vbs 调用两个批处理文件,第二次调用一个批处理文件,该批处理文件随后调用所需的批处理文件。因为我的整个工具都是用vbs开发的,所以输入的路径也会在那里。所以我试图仅通过 vbs 将该路径传递给批处理文件。我很抱歉改变了我的问题。我是初学者,所以我尝试了 2-3 种方法,因此就这些方法提出问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 1970-01-01
  • 2012-07-17
  • 2013-10-17
相关资源
最近更新 更多