批处理中命令后面的点有什么意义?

批处理中命令后面的点有什么意义?

当编写批处理文件(.bat)时,ECHO.用于在屏幕上打印一个空白行。

.这是如何工作的?命令名称后面的 a 有什么意义?

从下面的测试来看,执行类似命令似乎PROMPT.与执行相同PROMPT .。为什么会这样?


执行命令名后面带有点的各种命令的结果:

ECHO.        prints blank line
DIR.         lists current directory (as if no dot is present)
EXIT.        exits
HELP.        command not found
VER.         prints windows version (as if no dot is present)
CD.          does nothing (contrary to `CD` which prints the current directory)
CLS.         clears the screen  (as if no dot is present)
VOL.         "The system cannot find the drive specified."
SET.         "Environment variable . not defined"
TYPE.        "Access is denied."
PATH.        changes %PATH% to .
SHUTDOWN.    command not found
PROMPT.      changes the prompt to .
TITLE.       changes the title to .

答案1

这种方法也用于不知道该行是否为空的情况,例如当显示环境变量或可替换参数但可能为空时,如...

echo.%1

或者

echo.%SomeVar%

来源:

  1. CMD.EXE 中的“echo.”命令
  2. 批处理文件中的 ECHO .> 是什么意思?

答案2

我认为你已经回答了你自己的问题......

句号是一个具有不同结果的参数。对于 ECHO 命令,它是一种放置空白行的方法(没有 .,您会获得会话变量的状态)。也许您可以使用它找到一些隐藏的命令 :D

答案3

嗯,我知道其中一些问题的明确答案。

例如CD

它本身CD会打印当前目录,这是真的。

然而.,、..和(\/)对 有特殊含义CD

对于.CD扩展.为“Drive:\Path\Current_Folder”,然后它对此进行操作并将您“更改”到您已经在的同一目录中。

对于..CD扩展..为“Drive:\Path\Parrent_Folder”,然后它对此进行操作并将您更改为您所在文件夹的父目录。


对于,如果下一个字符是或D 用于更改驱动器,则/CD 会将其视为开关 ,并且由于它可能是驱动器根目录上的有效目录,因此如果您将其用作第一个字符以到达该文件夹,它就会中断。D?

因此,如果根目录中有一个以字母 D 结尾的目录(例如C:\D\),那么您就无法C:\D\E使用或更改到该目录或其任何给定的子目录(例如)CD /DCD /D/e到达该目录,因为这也是更改驱动器的开关。

相反,您可以使用CD \DCD C:/DCD \D/e从任何地方更改它或它的子目录。


对于 For\/,除了上面提到的之外,CD将其视为要执行的步骤之间的分隔符,并按顺序对每个步骤进行操作。从现在开始,我只会参考\但请记住,/除了上述警告之外,可以互换使用。

CD通过查看每个段并将其作为分隔符进行操作来分块其操作\

例如,CD C:\Windows\System32\Drivers\etc作用于CDCD C:\ & CD Windows & CD System32 & CD Drivers & CD etc

如果CDfinds\是命令后面第一个除空格以外的字符,它会将其扩展为驱动器的根目录(例如CD \扩展为CD C:\)。

SOCD \WindowsSystem32\Drivers\etc展开为相同 CD C:\ & CD Windows & CD System32 & CD Drivers & CD etc

C:\Windows>CD C:\ & CD Windows & CD System32 & CD Drivers & CD etc

C:\Windows\System32\drivers\etc>CD \windows

C:\Windows>CD \Windows\System32\Drivers\etc

C:\Windows\System32\drivers\etc>

因为它本质上是将提供的目录路径视为一系列可以执行的 CD 命令,所以您可以将其视为一个脚本,一次使用 CD 转到多个目录,并利用它..来向上移动任意数量的目录,虽然您可以使用.它,但本身并没有多大用处

所以总结一下,CD .对当前目录的更改CD ..会更改父目录,CD ./subdirectory或者CD subdirectory对该子目录的更改,CD \对驱动器的根目录的更改,对CD \Windows\System32沿根目录的路径的更改。

如果你在 中C:\Windows\System32并且想要转到怎么C:\Windows\System办?当然可以,但是如果你的路径很长,而你只想移动到父级的另一个同级目录而不需要重新输入或复制粘贴,该怎么办?这就是 的序列化特性发挥作用CD C:\Windows\System的地方!CD

您可以通过首先指示 CD 使用 移回父目录..,然后向下移动到同级目录来到达同级目录。

C:\Windows\System32>CD ..\System

C:\Windows\System>

您还可以..通过使用..\

C:\Windows\System32\drivers\etc>CD ..\..\..

C:\Windows>

您还可以做一些奇怪的事情,例如在文件夹树中使用多个不同部分来回移动,..或者在其中写入单个术语.,这样您就可以一遍又一遍地移动到同一个目录

例如:

C:\Windows\System>CD ..\System32\.\.\.\Drivers\etc\..\.\etc

C:\Windows\System32\drivers\etc>

相关内容