Tag: batch file

如何使用batch file压缩(/ zip)和解压缩(/ unzip)文件和文件夹而不使用任何外部工具?

我知道类似的问题在这里被问到很多,但是我对答案(甚至是问题)并不完全满意。 主要目标是兼容性 – 它应该适用于尽可能广泛的Windows机器(包括XP,Vista,Win2003 – 共同拥有20%左右的Windows共享)和生产的文件应该可以在Unix / Mac机上使用(如此标准归档/压缩格式是最好的)。 有什么select: 创build一个实现一些zipalgorithm的批处理。 显然这是可能的 – 但只有单个文件,并使用CERTUTIL进行二进制处理(有些机器默认情况下没有CERTUTIL,不能在WinXP Home Edition上安装) 通过WSH使用shell.application。根据我的最佳select。它允许压缩整个目录,并可在每个Windows计算机上使用 Makecab – 尽pipe它的压缩不是那么便携,它可以在每台Windows机器上使用。一些像7zip这样的外部程序能够提取.CAB内容,但是在Unix / Mac上需要使用文件时,它不会很方便。一个文件是非常简单的,保留目录结构需要更多的努力。 使用.NET Framework – 不太好的select.Form .NET 2.0有GZipStream,但它只允许压缩单个文件。 .NET 4.5具有Zipfunction,但在Vista和XP上不支持.NET。在XP和Win2003上,.NET并没有默认安装,但由于.NET 2.0的可能性高达4.0, 。 Powershell – 因为它依赖于.NET它具有相同的function。它不是默认安装在XP,2003和Vista上,所以我会跳过它。

如何在Windowsbatch file中有多种颜色?

我想知道是否有可能在Windowsbatch file中的同一行上有不同的彩色文本,例如,如果它说 echo hi world 我希望“嗨”是一种颜色,“世界”是另一种颜色。 也许我可以将COLOR命令设置为一个variables: set color1= color 2 set color9= color A 然后将它们同时部署在同一行上 echo hi world 但我不知道我会怎么做。

批文件删除N天以前的文件

我正在寻找一种方法来删除MS-DOSbatch file中超过7天的所有文件。 我search了networking,发现了几百行代码的例子,还有一些需要安装额外命令行工具来完成任务的例子。 BASH中只需几行代码即可完成类似的工作 。 在Windows中,对于batch file来说,似乎至less可以轻松实现。 我正在寻找一个解决scheme,在标准的Windows命令提示符下工作,没有任何额外的实用程序。 请不要PowerShell或Cygwin。

为什么在命令行上使用'set var = text'后没有输出string'echo%var%'?

我使用set命令在Windows 8.1上的CMD中设置了一个variables,并试图回显它。 这里是一个例子: C:\Users\Logan>set var = text C:\Users\Logan>set var var = text C:\Users\Logan>echo %var% %var% C:\Users\Logan> 那么有没有办法强制命令提示符回显variables,而不是原始文本?

如何在Windows命令行上获取当前的date时间,以适合的格式在文件名中使用?

更新:现在是2016年,我将使用PowerShell,除非有一个非常引人注目的向后兼容的原因,尤其是因为使用date的区域设置问题。 请参阅@ npocmaka的https://stackoverflow.com/a/19799236/8479 什么是Windows命令行语句我可以用它来获取当前date时间格式,我可以把它放在一个文件名? 我想要一个.bat文件,将当前date和时间作为名称的一部分压缩到一个存档中,例如Code_2008-10-14_2257.zip 。 有没有简单的方法可以做到这一点,独立于机器的区域设置? 我真的不介意date格式,最好是年月日,但任何简单的事情都可以。 到目前为止,我已经得到了这个,在我的机器上给我Tue_10_14_2008_230050_91 : rem Get the datetime in a format that can go in a filename. set _my_datetime=%date%_%time% set _my_datetime=%_my_datetime: =_% set _my_datetime=%_my_datetime::=% set _my_datetime=%_my_datetime:/=_% set _my_datetime=%_my_datetime:.=_% rem Now use the timestamp by in a new ZIP file name. "d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code 我可以忍受这一点,但似乎有点笨重。 理想情况下,它会更简短,并具有前面提到的格式。 我正在使用Windows […]

什么是Windows FINDSTR命令的未公开的function和限制?

Windows FINDSTR命令是可怕的logging。 有非常基本的命令行帮助可以通过FINDSTR /? ,或HELP FINDSTR ,但它是可悲的不足。 在http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/findstr.mspx?mfr=true上可以find更多的文档。 有很多FINDSTR的function和限制,甚至没有暗示在文档中。 如果没有事先的知识和/或小心的试验,也不能预料到它们。 所以问题是 – 什么是无证FINDSTR的function和限制? 这个问题的目的是提供许多未logging的function的一站式存储库,以便: A)开发人员可以充分利用那里的function。 B)开发人员不要浪费时间想知道为什么某些东西不应该工作。 请确保您在回复之前知道现有的文档。 如果信息被HELP覆盖,那么它不属于这里。 这也不是一个显示FINDSTR的有趣用途的地方。 如果一个逻辑人可以基于文档预测FINDSTR的特定用法的行为,那么它就不属于这里。 同样的道理,如果一个逻辑人可以基于任何现有答案中包含的信息来预测特定用法的行为,那么它又不属于这里。

Windows命令解释器(CMD.EXE)如何parsing脚本?

我碰到了ss64.com ,它提供了有关如何编写Windows命令解释器将运行的批处理脚本的很好的帮助。 但是,我一直无法很好地解释批处理脚本的语法 ,如何扩展或不扩展,以及如何逃避。 以下是我无法解决的示例问题: 报价系统如何pipe理? 我做了一个TinyPerl脚本 ( foreach $i (@ARGV) { print '*' . $i ; } ),编译并调用它: my_script.exe "a ""b"" c" →输出是*a "b*c my_script.exe """abc""" →输出*"a*b*c" 内部echo命令如何工作? 这个命令里面扩展了什么? 为什么我必须在文件脚本中使用for […] %%I ,而在交互式会话中使用for […] %I ? 什么是转义字符,在什么情况下? 如何逃避百分号? 例如,我怎样才能从字面上回显%PROCESSOR_ARCHITECTURE% ? 我发现echo.exe %""PROCESSOR_ARCHITECTURE%作品,有没有更好的解决scheme? 配对如何匹配? 例: set b=a , echo %a %b% c% → %aac% set […]

如何使用Windows命令行环境查找和replace文件中的文本?

我正在使用Windows命令行环境编写一个batch file脚本,并且希望将另一个文件(例如“BAR”)中的某些文本(例如“FOO”)的每次出现都更改。 什么是最简单的方法来做到这一点? 任何内置函数?