[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]请问批处理如何把2个带路径的变量拼接起来运行?

本帖最后由 iop890 于 2023-11-1 09:18 编辑

两个变量如下:
  1. set A="C:\Program Files (x86)\AAA.exe"
  2. set B="D:\BBB.txt"
复制代码
直接用绝对路径运行是正常的,"C:\Program Files (x86)\AAA.exe" start "D:\BBB.BBB"

但是用变量拼接后就报错,start不是内部或外部命令,也不是可运行的程序或批处理文件。
%A% start %B%

还试过set s=" start "(已经把start前后空格加上了)之后用%A%%s%%B%来运行了,也不行
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

set vm_path="C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
set wxy2_path="D:\VMs镜像\ ...
terse 发表于 2023-10-30 23:12



    实测不写这句goto menu也行,因为必定会走到这步

TOP

问题解决了,多谢楼上的几位高人

这是不是就是类似c语言的指针啊?第一次感受到了坑。。。

TOP

本帖最后由 iop890 于 2023-10-31 11:55 编辑
回复  iop890


仔细看看失败.bat的第4、11行
77七 发表于 2023-10-30 21:53



    跳过了变量赋值的两个语句。。。。。。。我的猪脑子。。。

TOP

set vm_path="C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
set wxy2_path="D:\VMs镜像\vm-wxy2\wxy.vmx"
goto menu

TOP

回复 13# iop890


    先把第4行的 goto menu 删掉再说
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 13# iop890


仔细看看失败.bat的第4、11行
bat小白,请多指教!谢谢!

TOP

回复 12# Batcher


    vmware workstation 17.0.0

TOP

start本身是一个批处理内部命令,它可以用来打开另外一个程序或文件。
从你顶楼的描述来看,似乎是希 ...
Batcher 发表于 2023-10-30 17:05



已上传,多谢大佬了!!

https://t.wss.ink/f/cjr5m5te3r7

TOP

回复 11# iop890


    你安装的是 VMware Workstation 还是 VMware Player 呢?哪个版本?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 iop890 于 2023-10-30 21:17 编辑

回复 10# Batcher


    对的!其实我是想用vmware自带的命令行启动多个虚拟机镜像,start参数是它内置的,所以改不了
并且我的镜像路径还带中文字符,所以也必须加双引号,两个问题叠加起来就有点麻烦了。。。

TOP

回复  77七


    现在不是报错,直接开了个新的cmd窗口
iop890 发表于 2023-10-30 15:55



start本身是一个批处理内部命令,它可以用来打开另外一个程序或文件。
从你顶楼的描述来看,似乎是希望把 start "D:\BBB.BBB" 作为参数传递给 "C:\Program Files (x86)\AAA.exe" 对吧?

建议尝试以下步骤:

请参考Q-06把脚本重命名为 test.bat(不要用start.bat或start.cmd):
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA

请参考Q-04把test.bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA

如果仍然有问题,请把你顶楼尝试成功的第一种写法,和不成功的第二种写法,这两个bat文件打包上传到网盘。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

你该不会是在for里面set的A和B
还有start应该是内部或外部命令吧

TOP

回复 7# 77七


     我用notepad2显示换行符,每行都是CRLF啊

TOP

回复 6# iop890


   应该是批处理文件的换行符问题,你可以试试新建一个空白的文本,直接手敲命令,不要从其它地方复制。
bat小白,请多指教!谢谢!

TOP

返回列表