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

指南:

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

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

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


当前回答

使用copy追加文件:

copy file1.txt+file2.txt+file3.txt append.txt

另外,将所有CLI参数设置为一个变量:

SET MSG=%*

这将使用空格分隔的每个单词(或符号)并将其保存到单个批处理文件变量中。从技术上讲,每个参数都是%1、%2、$3等等,但是这个SET命令使用通配符来引用stdin中的每个参数。

批处理文件:

@SET MSG=%*
@echo %MSG%

命令行:

C:\test>test.bat Hello World!
Hello World!

其他回答

IF命令!没有它,我的批处理文件是垃圾!

@echo off
IF exist %windir%\system32\iexplore.exe goto end

echo Hmm... it seems you do not have Internet Explorer.
echo Great! You seem to understand ;)

:end
echo Hmm... You have Internet Explorer.
echo That is bad :)

通过使用CALL, EXIT /B, SETLOCAL和ENDLOCAL可以实现带有局部变量的子例程。

例子:

@echo off

set x=xxxxx
call :sub 10
echo %x%
exit /b

:sub
setlocal
set /a x=%1 + 1
echo %x%
endlocal
exit /b

这将打印

11
xxxxx

尽管:sub修改了x。

子字符串变量:

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

文件名为“YYYY-MM-DD HH:MM:SS.txt”的例子

回波测试>“%日期:~ 0,4% - %日期:~ 5 2% - %日期:~ 8,2% %时间:~ 0,2% _ %时间:~ 3,2% _ %时间:~ 6,2% . txt”

我使用颜色来指示我的脚本是否成功,失败,或者通过改变文本和背景的颜色来需要一些输入。当你有一些机器在你视野范围内,但距离很远时,它真的很有帮助

颜色XY

其中X和Y为从0到F的十六进制值,其中X -背景,Y -文本,当X = Y时颜色不会改变。

颜色Z

更改文本颜色为“Z”并设置黑色背景,“颜色0”将不起作用

颜色的名字叫

颜色吗?

我想说DEBUG.EXE是批处理文件中一个非常有用但却未被充分利用的特性。

DEBUG命令允许你…

汇编和反汇编16位代码 读/写内存(现代受保护的内存使这个功能变得不那么有用。) 从硬盘读取数据扇区,原始 十六进制编辑

简而言之,这个工具非常强大。现在可能已经不怎么使用了,但是从批处理脚本调用和控制这个功能的能力为批处理脚本增加了惊人的能力。

注意:据我所知,微软已经从64位版本的Windows Xp和Vista中删除了这个命令,并打算从Windows 7中完全删除它。