找回密码
 立即注册
搜索
查看: 71|回复: 0

BAT脚本:运行特定路径下的exe

[复制链接]

1993

主题

887

回帖

1万

积分

管理员

积分
11574
发表于 2023-4-3 23:00:07 | 显示全部楼层 |阅读模式
应用场景5 f) f( J% N3 b% d$ P" P
学习过程中需要运行特定路径下的exe,本以为很简单的start C:\ProfileName\xx.exe /S就可以了,但是运行时发现一直报错。特记录一下。. H( ?; Y% `4 C* [* Q
注:/S为静默运行软件的参数。
" Z! O) J4 L2 I8 `4 {$ f  A$ |
问题分析
( g1 h2 [' S" }, d' f- j0 r语句一
' P( Z) D4 T3 h; A3 B, t我的脚本语句是这样的:. y7 i1 L1 B! {2 i' P: f
, m5 Y. s& {. |- ^
start C:\Program Files (x86)\DingDing\uninst.exe /S' {3 H4 ?& v8 Z) N" p; N( ?
pause
* U  ^# [' H, X0 o8 u% E2 X1
& {6 Z: o9 W7 e" O' W( }2
' x6 @* W) r7 n/ k3 S$ p% U加pause是为了看DOS窗口的输出信息。
8 q1 o: G( d# O, x0 L+ F6 }- S$ R7 X这样运行时DOS窗口会提示找不到路径。这是因为都是DOS窗口把空格前后识别为了不同级别的文件夹,所以必然会报错。
% Q. W% q2 e/ A! O6 X9 h; H7 ^
1 q2 |% U2 Z% L, c) S, A( G语句二
+ l# }8 P$ A- z9 f而后我又尝试了这样的格式:: l/ u- K, c  k/ R
7 t# J0 D3 ?. d
start "C:\Program Files (x86)\DingDing\uninst.exe" /S
. f+ q6 U# J# {6 L! ^* {1% G5 \4 f* }! u. ]
这样的格式可以正常识别路径,但是静默启动参数/S没有生效。也达不到目的。
* k2 s) C4 H& K( _, z4 M/ V! H4 c  T8 d2 ?
解决问题* s% s. `5 @6 c
经过多次尝试,发现这样的语句格式可以达到预期效果。
5 R! [4 n6 j, S- n( Z4 C! `; L7 k9 Z2 C* k( @
start C:\"Program Files (x86)"\DingDing\uninst.exe /S+ S4 ~* c( h3 v& u
1. x# H2 M. T. r. Y
错误的原因是DOS命令行会把空格识别为文件路径分级,这样如果某级的文件名中含空格,DOS命令行就会识别空格之前的路径名(例如:C:\Program Files (x86)会被识别为C:\Program),肯定会找不到路径。( t- ~) m$ J+ t% K
) I0 n' I8 @% y' B2 ^' h
总结
+ s( E0 J6 H) Y# W2 s. WDOS命令以空格作为标志来识别路径,因此如果路径中有空格存在,必须将其用英文引号包括起来,或者将整个路径包括起来。% S/ V1 k5 l, p  E- k
————————————————( d7 _3 l: U" {, H
版权声明:本文为CSDN博主「郎家岭伯爵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
5 `: n" H% k+ I. \5 Q原文链接:https://blog.csdn.net/weixin_43203591/article/details/116000759
0 |. l: E' k& R9 o$ P3 d$ \8 N& U) R% T
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ|手机版|金蝶软件交流论坛18963349898 ( 鲁ICP备15010340号 )

GMT+8, 2024-5-20 03:16 , Processed in 2.390482 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表