相关疑难解决方法(0)

Windows命令解释器(CMD.EXE)如何解析脚本?

我遇到了ss64.com,它为如何编写Windows命令解释器将运行的批处理脚本提供了很好的帮助.

但是,我一直无法找到批处理脚本的语法,扩展或不扩展的方法,以及如何逃避事情的良好解释.

以下是我无法解决的示例问题:

  • 如何管理报价系统?我制作了一个TinyPerl脚本
    (foreach $i (@ARGV) { print '*' . $i ; }),编译它并以这种方式调用它:
    • my_script.exe "a ""b"" c"?输出是 *a "b*c
    • my_script.exe """a b c"""?输出它*"a*b*c"
  • 内部echo命令如何工作?在那个命令中扩展了什么?
  • 为什么我必须for [...] %%I在文件脚本中使用,但for [...] %I在交互式会话中?
  • 什么是转义字符,以及在什么情况下?如何逃脱百分号?例如,我怎么能%PROCESSOR_ARCHITECTURE%字面回声?我发现echo.exe %""PROCESSOR_ARCHITECTURE%有效,有没有更好的解决方案?
  • 如何%配对?例:
    • set b=a,echo %a %b% c%%a a c%
    • set a =b,echo %a %b% c%bb c%
  • 如果此变量包含双引号,如何确保变量作为单个参数传递给命令?
  • 使用 …

windows parsing cmd batch-file variable-expansion

132
推荐指数
5
解决办法
6万
查看次数

Windows批处理文件中等效于NEQ,LSS,GTR等的符号

在批处理中,我总是==在使用if命令时使用.(例如:if "19"=="3" echo My computer doesnt know maths)

怎么样对所有其他的(LSS,LEQ,NEQ等)?是不是有什么样!=NEQ,还是我想Unix的?

我想使用符号的原因是因为我认为有人说文字或数字符号比使用文本变体更有效.

无论哪种方式,我还是想知道.谢谢.

windows cmd if-statement batch-file

7
推荐指数
2
解决办法
2万
查看次数

IF 的奇怪结果

受到这个问题及其答案的启发,我做了一些测试。一个答案表明,数字太大(超过 32 位整数)并且它们被截断,但这并不能解释结果。同样显然它不会将双方作为字符串进行比较(正如我所期望的那样)。似乎if感到困惑并认为“好吧,我不知道 - 给它一个真实的”。(使用neq, gtr,lss而不是equ, geqleq总是给出 FALSE)。

如果任何一个a和/或b在 32 位整数的边界内或包含 [0-9] 之外的任何字符,则代码按预期工作。

@echo off
set a=333333333333
set b=444444444444
call :compare
set b=222222222222
call :compare
goto :eof

:compare
echo comparing %a% with %b%
if %a% geq %b% (echo a ^>= b) else (echo -)
if %b% geq %a% (echo b ^>= a) else (echo -)
if %a% leq %b% (echo a ^<= …
Run Code Online (Sandbox Code Playgroud)

cmd if-statement

3
推荐指数
1
解决办法
279
查看次数

更改目录命令 cd .. 在 npm 安装后不在批处理文件中工作

我在一个 bat 文件中有以下命令。

echo STEP12
cd HDC
git config --global url."https://".insteadOf git://

echo STEP13
cd hui-components-style
npm install --registry http://localhost:23510
cd ..
Run Code Online (Sandbox Code Playgroud)

在 STEP13 中,在 npm install 命令cd..不起作用之后。它不会回到父 HDC 文件夹。我有其他命令要在父文件夹中运行。我犯了一些语法错误吗?

batch-file node.js npm

3
推荐指数
1
解决办法
6110
查看次数