相关疑难解决方法(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批处理文件中按大小排序

@echo off
setlocal enableDelayedExpansion

set test1=x
set test2=y
set test3=z

echo(

echo NORMAL EXPANSION TEST
echo Unsorted works
(
  echo %test3%
  echo %test1%
  echo %test2%
)
echo(
echo Sorted works
(
  echo %test3%
  echo %test1%
  echo %test2%
) | sort

echo(
echo ---------
echo(

echo DELAYED EXPANSION TEST
echo Unsorted works
(
  echo !test3!
  echo !test1!
  echo !test2!
)
echo(
echo Sorted fails
(
  echo !test3!
  echo !test1!
  echo !test2!
) | sort
echo(
echo …
Run Code Online (Sandbox Code Playgroud)

pipe batch-file

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

标签 统计

batch-file ×2

cmd ×1

parsing ×1

pipe ×1

variable-expansion ×1

windows ×1