Articles of batch file

如何从Windowsbatch file中testing%PATH%中是否存在可执行文件?

我正在寻找一种简单的方法来testing一个可执行文件是否存在于Windowsbatch file的PATH环境variables中。 不允许使用操作系统不提供的外部工具。 所需的最小Windows版本是Windows XP。

如何创build一个快捷方式从cmd行启动pipe理员权限的应用程序?

我有一个安装程序(Inno-Setup)将我的应用程序安装到用户定义的path。 在安装例程结束时,我想创build一个快捷方式,以pipe理员权限启动应用程序。 该解决scheme应该可以在winXP到Win7的所有win版本上运行。 我能做些什么来达到这个目的? 我知道这是可能的批处理脚本,执行一个讨厌的VB脚本 。 缺点是,cmd窗口popup,它只适用于win7我猜。 我也试过命令mklink创build一个超链接,但它不起作用,因为它是不可能通过设置pipe理特权的参数。

什么语法将检查是否定义了包含空格的variables名?

Windows用户定义的环境variables名称可以包含任何字符,除了= 。 特殊字符可以通过转义来包含。 一个简单的方法是简单地将整个SETexpression式括在引号中。 例如: set "A weird & "complex" variable=My value" set A weird ^& "complex" variable=My value 上面的两个expression式都给出相同的结果 variables名称是A weird & "complex" variable ,值是My value IF DEFINED结构用于testingvariables是否被定义。 行情不适用于此testing,名称(包括引号)中的特殊字符必须转义。 set "A&B=value" if defined A^&B echo This works if defined "A&B" echo This does not work 上面的逃脱testing工作得很好。 引用的testing不起作用 但是我怎样才能testing一个包含空格的variables是否存在? set "AB=value" if defined A^ B […]

从C#运行bat脚本

我试图从ac sharp程序运行批处理脚本我使用的代码如下所示: Process proc = new Process(); proc.StartInfo.FileName = "G:\\Media\\Downloads\\print.bat"; proc.Start(); 该脚本很简单(用于testing目的)并包含一行: echo hello > output.txt 当我从Windows资源pipe理器运行该脚本它的作品,但不从C#代码运行时。 有什么想法吗? 另外我怎样才能给进程一个callback方法,当它完成? 谢谢

在batch file中使用“#”(井号)

我遇到了一个使用#的batch file( portableshell.bat版本的Strawberry Perl中的portableshell.bat),我不明白为什么。 我在网上search,但似乎没有提及这种用法。 我需要模仿batch file的function,但是我很警惕不这样做,而不理解它到底是什么。 这里#的目的是什么: set drive=%~dp0 set drivep=%drive% if #%drive:~-1%# == #\# set drivep=%drive:~0,-1% 和这里: if not #%1# == ## "%drivep%\perl\bin\perl.exe" %* & goto END (这里是整个文件的一个pastebin ,供参考)

用path中的空格执行batch file

我有问题通过PowerShell在远程服务器上执行batch file。 用户可以在Servername , 启动或查杀进程, Servicename等popup窗口中select多个意见。 所选项目将保存在variables中。 如果select了所有项目,我想将string合并到一个string并执行命名为这个结果string的批处理脚本。 我尝试按照这篇文章中的描述来做,但批处理脚本不会被执行。 例: [String]$scriptpath="C:\tmp\" [String]$Servername = "xx040" [String]$actionprefix = "kill_process" [String]$action = $($actionprefix) + "-" [String]$Servicename = "service1" [String]$ServiceFullname = $($action) + $($Servicename) + ".bat" $batchPath = $("`"$scriptpath + $ServiceFullname `"") Invoke-Command -ComputerName $Servername -ScriptBlock { cmd.exe /c "`"$batchPath`"" }

最短的Windowsbatch file代码获取文件的第一行设置为variables?

我正在寻找可能的最短代码量,它将获取文本文件的第一行,并将其设置为Windows中的variables。 在这个StackExchange站点的其他线程中有很多这样的事情的例子,但我不想要如何循环显示文件中的所有行。 我想要的只是简单地得到第一行。

如何在Windows 7上用batch file更改MAC地址?

我想通过简单的点击(使用batch file)来更改我的无线设备的MAC地址。 我怎么做到这一点? 它需要select一个随机的MAC地址。

WMIC:如何使用具有特定工作目录的**进程调用create **?

任务是使用wmic process call create "c:\folder\app.exe"来启动一个程序,让app.exe在app.exe home folder tree访问它自己的支持文件。 下面的批处理脚本说明了WMIC静静地更改工作目录的问题,因此无法find支持文件。 该脚本创build第二个称为one.batbatch file,只需从同一文件夹中键入一个url.txt文件,即可在控制台上显示www.google.com 。 当使用wmic创build进程时,wmic默默地改变工作目录,以便one.bat ,如果我将完整path指定为d:\abc\one.bat one.bat则会启动one.bat但无法find在它自己的文件夹中input名为url.txt的文件。 如果我将WMIC.EXE文件复制到相同的文件夹,它以相同的方式失败。 @echo off set "folder=d:\abc" cd /d "%folder%" ( echo.@echo off echo.type url.txt echo.pause )>one.bat ( echo.@echo off echo.www.google.com )>url.txt echo this will work to launch the one.bat but the working directory is wrong and the file can't be found […]

使用Windows批处理从文本文件中删除重复行

我想删除文本文件中的重复行,但只保留使用Windows批处理脚本第一次发生。 我尝试了很多方法,但是很长而且效率不高。 你能帮忙吗?