相关疑难解决方法(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万
查看次数

在cmd中使用'set var = text'命令后,为什么没有带'echo%var%'的字符串输出?

我用set命令在cmd中设置了一个变量,然后尝试了echo.

这是一个例子:

C:\Users\Logan>set var = text

C:\Users\Logan>set var
var = text

C:\Users\Logan>echo %var%
%var%

C:\Users\Logan>
Run Code Online (Sandbox Code Playgroud)

有没有办法强制cmd echo变量而不是原始文本?

cmd batch-file

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

为什么 ECHO 命令会在文件中打印一些额外的尾随空格?

我正在从数据文件中读取多行并将其附加到另一个文件中。问题是输出文件中附加行末尾有一些额外的空间。必须根据我的要求修剪尾随空格,因为在原始数据文件中行尾没有空格。我尝试了所有可能的事情,但我仍然无法实现这一目标。

@echo off
setlocal enabledelayedexpansion
FOR /F "delims=" %%c IN (C:\Users\184863\Desktop\mydata.txt) DO ( 
echo %%c>>temp_data.txt 
)
endlocal
Run Code Online (Sandbox Code Playgroud)

我尝试过的选项:

  1. echo %%c>>temp_data.txt...在行尾获得 1 个空格

  2. set lines=%%c
    echo !lines!>>temp_data.txt...在行尾获得 1 个空格

  3. echo !lines:~0,-1!>>temp_data.txt...该行的最后一个字符被修剪

  4. set lines=!lines: =!
    echo !lines!>>temp_data.txt...行内的所有空格也被修剪(只需要修剪行尾,原始数据文件中不存在)

windows batch-file

4
推荐指数
1
解决办法
6142
查看次数

标签 统计

batch-file ×3

cmd ×2

windows ×2

parsing ×1

variable-expansion ×1