Windows批处理文件有哪些不太为人所知,但很重要和有用的特性?

指南:

每个答案一个特征 给出特性的简短描述和示例,而不仅仅是文档链接 将答案限制在本地功能,即不需要额外的软件,如Windows资源包

澄清:这里我们指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。

(请参见:Windows批处理文件:.bat vs .cmd?)


当前回答

快速将Unicode文本文件(16bit/char)转换为ASCII DOS文件(8bit/char)。

C:\> type unicodeencoded.txt > dosencoded.txt

作为奖励,如果可能的话,字符会被正确映射。

其他回答

这个批处理文件既可以使用简单文件,也可以使用目录作为命令行参数(您可以以任何顺序混合它们)。循环在任何指定的文件上运行命令(本例中为'echo'),如果一个参数是一个目录,它将在其中的每个文件上递归地运行命令。

@echo off
for /f "delims=" %%f in ('dir %* /a-d /b /s') do echo %%f

去:eof纸板

我在脚本的末尾添加了“goto:eof”,作为存放代码片段的方便空间。这样我就可以快速复制/粘贴到这个区域,而不需要注释/取消注释。

goto :eof
:: code scraps
call this.bat
call that.bat
set TS=%DATE:~10%%DATE:~4,2%%DATE:~7,2%-%TIME:~0,2%%TIME:~3,2%%TIME:~6%%
for /R C:\temp\ %%G in (*.bak) DO del %%G

整数运算:

> SET /A result=10/3 + 1
4

我总是发现很难阅读每行用关键字标记的注释:

REM blah blah blah

易于阅读:

:: blah blah blah

子字符串变量:

> set str=0123456789
> echo %str:~0,5%
01234
> echo %str:~-5,5%
56789
> echo %str:~3,-3%
3456