Articles of batch file

如何遍历Windowsbatch file中的文件夹树/子树?

在Windowsbatch file中,有没有办法遍历文件夹/子文件夹层次结构,对每个文件执行一些操作?

如何从命令行添加多行REG_SZstring到registry?

作为一个Windows机器上的生成设置的一部分,我需要添加一个registry项,我想从一个简单的batch file。 该条目是为第三方应用程序,所以格式是固定的。 该条目采取REG_SZstring的forms,但需要包含换行符,即。 0xOA字符作为分隔符。 我遇到了一些问题。 第一次尝试使用registry加载生成的.reg文件。 这失败了,因为它似乎不喜欢长string或带有换行符的string。 我发现导出工作正常导入失败。 我能够testing出口作为第三方应用程序直接通过win32 api添加类似的条目。 第二次尝试使用命令REG ADD,但我无法find任何添加新行charcters所有我尝试只是结束了一个文字string被添加。 有任何想法吗?

在boost的窗口中调用BAT并更改ENVvariables

在PowerShell脚本中,我必须在提升的窗口中调用batch file。 所以我呢 Start-Process my.bat -Verb runas 现在, my.bat期望在原始窗口中设置一些ENVvariables。 但是,由于提升的窗口是以pipe理员身份执行的,因此我设置为普通用户的这些variables似乎没有在pipe理员窗口中设置。 有没有办法在调用my.bat之前在pipe理窗口中设置ENVvariables?

windows批处理脚本 – 在循环内设置variables

也许我不能清楚地表示我的问题,下面是我所做的实际代码: @echo off set /p keywords="Enter keywords to search: " %=% dir /b *.dat > filelist.txt for /f "delims=." %%f in (filelist.txt) do ( for /f "delims= " %%g in (%%f.dat) do ( 7z e %%g *sec.evtx dir /b *.evtx > evtfile.txt set /p tmpvar1=<evtfile.txt del *.evtx ) ) Filelist.txt中 tsnint1.dat webint1.dat tsnint1.dat TSNINT1-201312091700.zip TSNINT1-201312091600.zip […]

在Windows系统上移动文件的最快方法

我想在Windows系统上将大约800GB的数据从NTFS存储设备移动到FAT32设备 (都是外部硬盘驱动器)。 达到这个目标的最好方法是什么? 简单地使用剪切粘贴? 使用命令提示符? ( move ) 写一个batch file来复制一个给定的时间间隔的一小块数据? 使用一些特定的应用程序,为我做的工作? 或者有什么更好的想法…? 什么是最安全,最有效和最快速的方式来实现这样一个耗时的过程?

使用Windows / DOS的shell /批处理命令,我如何拿一个文件,只保留唯一的行?

说我有一个像这样的文件: apple pear lemon lemon pear orange lemon 我怎么做才能保持独特的线条,所以我得到: apple pear lemon orange 我可以修改原始文件或创build一个新的。 我想有一种方法可以一次扫描原始文件一行,检查该行是否存在于新文件中,然后追加(如果没有)。 我没有在这里处理真正的大文件。

为什么不需要`call`从pipe道中涉及的被调用的批处理脚本返回?

假设有一个batch file(调用者)执行另一个batch file(被调用者), call命令需要被使用以在被调用者完成执行之后返callback用者。 这里是一个例子: caller.bat : echo Calling another script… call callee.bat echo Returned from callee… callee.bat (在相同的位置) : echo Being called from caller… 输出将是这个(省略命令回声),显示执行返回按预期: Calling another script… Being called from caller… Returned from callee… 如果call者中的call命令被解除,则输出将是: Calling another script… Being called from caller… 但是只要被调用者涉及到pipe道( | ), call命令是否被使用就没有区别。 例如: caller.bat (被调用者保持不变) : echo Calling another […]

Windowsbatch file – 显示所有子文件夹

我很难使用Windowsbatch file返回JUST文件夹(忽略文件)。 这是我现在所拥有的。 目前它正在回荡文件和子文件夹。 for /r %%g in ("xx*") do echo %%g 另外,假设我只想返回以不同前缀开头的文件夹。 例如:我只想回显文件夹“work”下的以w *,we *,cm *,cr *等开头的文件夹。 我这样做是否可以使用batch file? 谢谢。

我怎样才能传递批量参数点到PowerShell脚本?

我有一个批处理脚本,将由一个不受我控制的外部进程运行。 外部进程可以为批处理脚本提供可变数量的参数。 然后我想要将这些variables传递给一个PowerShell脚本。 问题是,这些variables中有一些是这样的: -Dfoo.bar =巴兹 Powershell出于某种原因将其分解为两个参数。 在命令行上,我可以在arg周围添加引号,并将其称为一天。 但是,我将如何批量通过这种方式呢? 这是我的脚本: @echo off SET CMD=C:\Scripts\foo.ps1 PowerShell.Exe -Command "%CMD%" %* 我注意到这个问题和这个非常相似。 在这里他逃避了$angular色。 我试着做点和/或短跑字符类似的东西,但没有运气。 任何人有任何想法?

加到stdin

我有一个交互式命令行程序,我们将其称为program.exe。 当它运行时,我可以input一些不同的命令来完成不同的事情。 我们会打电话给他们:doA,doB,doC,然后退出。 现在,事实certificate,我想在program.exe中做的第一件事情总是 doA。 我想节省一些击键,并自动让program.exe在启动时运行doA命令。 不幸的是,我不能在命令行上传递“doA”,因为创buildprogram.exe的人没有实现这个function。 我看到它的方式,我有几个select: 编写另一个调用program.exe的程序,将doA写入stdin,然后将它自己的stdin挂接到program.exe的stdin,并将program.exe的sdtout挂接到它自己的stdout。 这可能会工作,但我想看看是否有一个不需要编译器的解决scheme 使用一些batch file魔法将doA插入到program.exe的stdin中。 这是我有问题的部分。 以下是我迄今为止所尝试的: echo doA | program.exe 这是有效的,因为program.exe执行doA,但是我不能input任何其他命令到program.exe。 回声占用了program.exe的stdin more | echo doA | program.exe 这也起作用,并接近我后面的一点。 program.exe执行doA,我看到doA的输出。 我也可以input额外的命令,但是我看不到这些命令的输出。 此外,当我发送退出命令,program.exe终止(我猜),但我仍然卡在“更多”命令,我可以继续打字行,直到我按Ctrl + C。 问题:还有另一种方法来做我想用bat文件做的事情吗? 从概念上讲,我想我需要将两个stream(键盘和文字“doA”)合并为一个,然后将其传递到program.exe中,但是我可能会离开。