昨天朋友给我要了微信双开的批处理文件,几乎没有出错过的批处理,在她那边出错了,错误如下图所示。
太久没碰到过这个问题了,各种折腾搞不定,简单百度搜索了也没有找到类似的案例。因为要下班回家带娃,一时间也没有头绪,就扔着了,等第二天上班再说,没钱的事,慢慢来了~_~!顺便看看有没有什么思路。~
早上一来,就找了一台电脑还原朋友她那边的情景,D盘下中文目录名“微信”,然后把微信装在里面,运行批处理后,问题重现如上图。
于是我曲线救“程序”,改了改,写成以下后好了,运行后能双开了。
@echo off
title 本文件要放到和微信同一个目录才可以!可以快捷方式放到桌面方便执行
color 0e
taskkill /f /im WeChat.exe
cd /d %~dp0
start WeChat.exe
start WeChat.exe
exit
而因为多写的一行标题,显示成了乱码,让我很别扭,这问题简单,多年运维经验,我一看就知道是编码格式不对导致的,所以,我把编码格式改成了ANSI另存后运行,好了,完美了,交差了。
在联系她后,跟她完的一瞬间,我貌似知道之前的程序问题出在哪里了,我让他等等。。我测试下。。。果然,我把之前最早的程序另存为ANSI编码格式另存后,双击运行,果然不负所望,好了~开心 。。。
经验:
1.安装软件尽量不选择中文目录,就没有编码格式的问题了
2.start /d “目录” 程序名
/d 后面的是启动目录,也就是说程序启动后就会把这个目录当作是默认目录,程序中如果想打开某个文件但又未指定绝对路径(只有文件名或者相对路径)时,就会从这个目录中查找指定的文件
3.cd /D %~dp0 更改当前目录为批处理本身的目录
%0代表批处理本身
~dp是变量扩充
%~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录