Articles of batch file

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中,但是我可能会离开。

如何批量查找特定文本行中的特定文本?

我试图批量做到这一点。 我知道如何在特定的行中获得特定的string。 但我的问题是:有没有办法只获得该行中指定的string? 我用来获取特定行的代码是: :64BIT @echo on cd /D "C:\" dir curl_for_64bit.exe /S > "%USERPROFILE%\Documents\reply.txt" cd /D "%USERPROFILE%\Documents\" for /F "skip=3 delims=" %%G in (reply.txt) do ( set "var=%%G" ) 存储在reply.txt中的输出是: Volume in drive C has no label. Volume Serial Number is 901C-31D8 Directory of C:\Users\onlYUs\Documents\jezreel\64BIT 08/24/2016 05:26 PM 2,140,672 curl_for_64bit.exe 1 File(s) 2,140,672 bytes […]

从任务列表传递PID,并使用任务列表终止进程

我试图让窗口进程匹配一些特定的标准,例如他们像“123456.exe”,并试图杀死他们与任务列表。 我想这样做: FOR /F "usebackq tokens=2 skip=2" %i IN (`tasklist |findstr /r "[0-9].exe") DO taskkill /PID %i 这是不对的,我不知道为什么….任何人都可以给我一个提示? 感谢提前!

“查找”不被识别为内部或外部命令,可操作程序或batch file

我试图在我的Windows 7电脑上安装谷歌云SDK。 我将当前目录更改为install.bat文件所在的C:\ google-cloud-sdk。 Iam无法从cmd运行.bat文件,当我在cmd中键入install.bat时,出现以下错误 “查找”不被识别为内部或外部命令,可操作程序,batch file。“

使用batch file自动执行Windows命令行实用程序 – 在实用程序启动后将击键发送到stdinput

我有一个命令行实用程序,它将打开(duh)命令行中发送的参数指定的串行连接。 实用程序启动后,我可以键入stdinput发送string到我连接的端口。 我想要做的是用batch file启动实用程序(很简单),然后自动执行我希望发送的按键。 我自己没有运气,需要一些专家的意见。 我将给出一个更具体的例子:我用这一行在batch file中启动teraterm.exe(开放源代码串行通信工具):“call serialterm com5 115200 ascii yes”然后,我可以键入“Hello World”并接收来自开放的港口。 我希望我的batch file中的下一行为我发送“Hello World”,以便我可以通过在batch file中列出其他string命令。 非常感谢帮助! -Matt

为什么在批处理脚本不工作的“做设置”function?

批处理脚本中有以下问题。 我有这个代码行 for /f "tokens=*" %%d in ('dir /b /s a2lfiles_merger*.txt') do set merger_list=%%d echo %merger_list% 结果是Echo is OFF 然后我试了这个代码 for /f "tokens=*" %%d in ('dir /b /s a2lfiles_merger*.txt') do echo %%d 结果是C:\Users\user\Desktop\Build\Input\JOB_1\a2lfiles_merger.txt 所以,问题是为什么我不能设置一个variables的path? 我需要在接下来的步骤中使用它,现在我陷入了这种情况。 任何人都可以find解决办法 谢谢大家!

windows batch dir命令获取最后一个以string开头的修改目录

我想获得最后修改的目录,以stringstringEx…在Windowsbatch file中。 例如:我有一个文件夹包含这样的子目录: – 目录 -Subdirectory1 -Subdirectory2 -Anothersubdirectory …. 我尝试过,但它不起作用: @echo off Setlocal EnableDelayedExpansion Set foundedFolder FOR /F %%i IN ('dir C:\Directory | subtsr "Anoth*" /b /ad-h /od') DO (SET a=%%i) %foundedFolder%=%a% 有任何想法吗?

将命令输出保存到variables

在batch file中,我试图获取命令的输出并将其保存到variables中。 我的命令的目标是计算特定文件夹中的文件夹数量。 我不能使用这个接受的答案中提供的技巧,因为我将不得不做cd path\to\my\folder到达当前目录。 不幸的是,我不能执行这个命令,因为path\to\my\folder实际上是一个UNCpath( \\path\to\my\folder ),而windows cd \\some\UNC\path不支持cd \\some\UNC\path CMD。 我知道这个答案,但我不想使用临时文件。 所以我试图做到以下几点: 要获取文件夹的数量,我使用: dir \\path\to\my\folder | find /c "<REP>" 这工作正常,并返回我一个数字,我所期望的。 要在批量variables中检索这个命令的输出,我尝试过: FOR /F "TOKENS=*" %%i IN ('\\path\to\my\folder | find /c "<REP>"') DO SET value = %%i 但没有成功,错误信息是… | 是意外的。 …当我执行batch file和… %%我是意外的。 当我尝试直接在命令窗口中执行命令。 我试图绕过<REP>string( …find /c ""<REP>""') DO… )的引号,给我同样的错误。 我在正确的path检索variables中的输出? 我应该怎么做才能解决错误信息? 或者也许有一个更简单的方法来设置一个variables的命令输出?