【问题标题】:how to start bat string as a command如何将 bat 字符串作为命令启动
【发布时间】:2016-06-21 09:40:57
【问题描述】:

我有一个很好的代码 但我需要改变它:

@echo off

java -jar CheckOneHostByTcpPort.jar %_hostname%

我需要用字符串启动这个脚本,然后得到一个类似于 privies 代码的结果, 我尝试了一个不同的变体,但只在我的 CMD 行中看到了这个 java -jar CheckOneHostByTcpPort.jar %_hostname%(((

@echo off

set /P "_temp_string=java -jar CheckOneHostByTcpPort.jar %_hostname%"

cmd _temp_string

【问题讨论】:

  • 您想要set/p 做什么?您不能使用它编辑预定义文本,您只能输入新文本。你应该输出 _temp_string 的内容来看看会发生什么,echo %_temp_string%
  • 我尝试过使用 _temp_string 的不同版本,例如:echo %_temp_string% 或 %_temp_string% 以及其他许多变体,但我找不到合适的。
  • 尝试将命令字符串回显到带有echo ... > file.cmd 的文件中,然后使用call file.cmd 执行该文件
  • @MarkSetchell 你是完全正确的,' echo java -jar CheckOneHostByTcpPort.jar %_hostname% %_port% %_warning% %_critical% > file.cmd ' 和 [call file.cmd] 工作。但我怎么能这样做抛出变量

标签: string batch-file cmd command line


【解决方案1】:

启动存储在变量中的命令可以通过

%myCommand%

你可以试试

@echo off
set /P "myCommand=Enter a complete command: "
echo You entered %myCommand%
%myCommand%

但也许您只想添加用户定义的参数

@echo off
set /P "myPrams=Enter additional parameters: "
java -jar CheckOneHostByTcpPort.jar %_hostname% %myParams%

【讨论】:

  • Dell Foglight 将在启动时发送此 *.bat 文件中的参数。所以我只需要在命令 java -jar CheckOneHostByTcpPort.jar 之后创建一个变量
  • 什么是Dell Foglight?它如何发送 参数到批处理文件? create a variable after command 是什么意思?请澄清您的问题,因为它无法理解。你可以阅读How do I ask a good question?
  • Dell Foglight 是监控系统。它在 %_hostname% 中发送变量,所以当我开始第一个示例时,一切正常。但是现在想写很多变量,所以需要用string,因为要改变量。
  • 允许用户输入任何命令并运行它是一个巨大的安全风险。用户可能会输入类似DEL /S /Q C:\Windo...
猜你喜欢
  • 2022-06-30
  • 2011-08-14
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2018-04-12
  • 2013-03-14
  • 2018-09-28
相关资源
最近更新 更多