标题: [文本处理] [已解决]请问批处理如何把2个带路径的变量拼接起来运行? [打印本页]
作者: iop890 时间: 2023-10-30 14:53 标题: [已解决]请问批处理如何把2个带路径的变量拼接起来运行?
本帖最后由 iop890 于 2023-11-1 09:18 编辑
两个变量如下:- set A="C:\Program Files (x86)\AAA.exe"
- 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%来运行了,也不行
作者: 77七 时间: 2023-10-30 15:15
请把完整报错信息发出来看看
作者: czjt1234 时间: 2023-10-30 15:18
对比楼主的两行代码,明显少了引号
"%A%" start "%B%"
作者: iop890 时间: 2023-10-30 15:55
回复 2# 77七
现在不是报错,直接开了个新的cmd窗口
作者: iop890 时间: 2023-10-30 15:55
本帖最后由 iop890 于 2023-10-30 16:16 编辑
对比楼主的两行代码,明显少了引号
"%A%" start "%B%"
czjt1234 发表于 2023-10-30 15:18
加了也报错,会说'""' 不是内部或外部命令,也不是可运行的程序或批处理文件。
作者: iop890 时间: 2023-10-30 16:17
请把完整报错信息发出来看看
77七 发表于 2023-10-30 15:15
'""' 不是内部或外部命令,也不是可运行的程序或批处理文件。
都是这句话,不是start就是双引号
作者: 77七 时间: 2023-10-30 16:21
回复 6# iop890
应该是批处理文件的换行符问题,你可以试试新建一个空白的文本,直接手敲命令,不要从其它地方复制。
作者: iop890 时间: 2023-10-30 16:40
回复 7# 77七
我用notepad2显示换行符,每行都是CRLF啊
作者: Five66 时间: 2023-10-30 16:44
你该不会是在for里面set的A和B
还有start应该是内部或外部命令吧
作者: Batcher 时间: 2023-10-30 17:05
回复 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文件打包上传到网盘。
作者: iop890 时间: 2023-10-30 21:15
本帖最后由 iop890 于 2023-10-30 21:17 编辑
回复 10# Batcher
对的!其实我是想用vmware自带的命令行启动多个虚拟机镜像,start参数是它内置的,所以改不了
并且我的镜像路径还带中文字符,所以也必须加双引号,两个问题叠加起来就有点麻烦了。。。
作者: Batcher 时间: 2023-10-30 21:20
回复 11# iop890
你安装的是 VMware Workstation 还是 VMware Player 呢?哪个版本?
作者: iop890 时间: 2023-10-30 21:32
start本身是一个批处理内部命令,它可以用来打开另外一个程序或文件。
从你顶楼的描述来看,似乎是希 ...
Batcher 发表于 2023-10-30 17:05
已上传,多谢大佬了!!
https://t.wss.ink/f/cjr5m5te3r7
作者: iop890 时间: 2023-10-30 21:35
回复 12# Batcher
vmware workstation 17.0.0
作者: 77七 时间: 2023-10-30 21:53
回复 13# iop890
仔细看看失败.bat的第4、11行
作者: Batcher 时间: 2023-10-30 22:29
回复 13# iop890
先把第4行的 goto menu 删掉再说
作者: terse 时间: 2023-10-30 23:12
set vm_path="C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
set wxy2_path="D:\VMs镜像\vm-wxy2\wxy.vmx"
goto menu
作者: iop890 时间: 2023-10-31 11:51
本帖最后由 iop890 于 2023-10-31 11:55 编辑
回复 iop890
仔细看看失败.bat的第4、11行
77七 发表于 2023-10-30 21:53
跳过了变量赋值的两个语句。。。。。。。我的猪脑子。。。
作者: iop890 时间: 2023-10-31 11:57
问题解决了,多谢楼上的几位高人
这是不是就是类似c语言的指针啊?第一次感受到了坑。。。
作者: iop890 时间: 2023-10-31 13:45
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也行,因为必定会走到这步
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |