batch-file - 为什么我的批处理文件的内容被解释为 alt 代码?
问题描述
我正在使用批处理文件来执行一些 adb 命令。尝试长按电源键时,我使用以下行:
adb -s <ipaddress>:5555 shell input keyevent --longpress 26
.
如果我在 cmd 中输入这个命令,它就会顺利运行。但是,从批处理文件运行它会导致短按。我创建了一个单行批处理文件,上面的命令作为唯一的内容。运行批处理文件时(我只是在 cmd 中输入文件名),命令打印为:
adb -s <ipaddress>:5555 shell input keyevent -ΓÇôlongpress 26
是否有我可能在不知不觉中启用的设置导致了这种情况,或者我需要某种转义字符?
解决方案
我很尴尬,我在发布后几分钟就找到了我的问题的解决方案,但我认为我应该分享而不是浪费任何人的时间。
我已经用它自己的 alt 代码(即 alt 45)替换了我的命令中的第二个连字符,现在它在批处理文件中被正确解释了。该行仍然显示:
adb -s <ipaddress>:5555 shell input keyevent --longpress 26
我不明白为什么会这样,如果有人能阐明这个问题,我将不胜感激。
编辑:根据下面评论的建议,我查找了编码方案之间的差异。如果我理解正确,以 ASCII 或 ANSI 编码时,字符限制为 7 位数据。这会将字符保留在 ASCII 表的前 128 个成员中,因此无法生成我之前看到的 alt 代码。
推荐阅读
- html - 将响应按钮放置在 TextArea 内
- javascript - ReactJS:如何传递字符串以用作函数名?
- android - 如何重新生成 android_gradle_build.json 以使我的 NDK 项目从 Gradle 构建?
- mongodb - 可以在 Mongo 中有效索引的列表的最佳方法
- python - pytorch nn.L1Loss 与 Sklearn 的 l1 损失 - 优化结果非常不同?
- javascript - 如何使用 socket.io 在与多个用户的会话中保留变量?
- android - android 应用程序中的泄漏:SmoothScroller 的一个实例被启动了不止一次
- c++ - Windows 后台服务(系统配置文件)无法使用 C++ 访问 win 10 上的用户 appData 文件夹?
- timestamp - 查找包含异常值的两个数据集之间的偏移量
- python - np.roll 不翻边