Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何使用WHERE中的属性运行程序_Batch File_Search_Cmd_Exe_Windows 7 X64 - Fatal编程技术网

Batch file 如何使用WHERE中的属性运行程序

Batch file 如何使用WHERE中的属性运行程序,batch-file,search,cmd,exe,windows-7-x64,Batch File,Search,Cmd,Exe,Windows 7 X64,我需要在cmd windows 7中搜索并运行该程序。我尝试了以下代码,当一起输入时,它似乎没有拾取操作员 START WHERE /R C:\ Program.exe /uninstall dir /s /b Program.exe /uninstall 是否有另一种(更简单/更好的)方法来使用操作员启动程序?其中搜索文件,但不执行它们start where只在新的cmd实例中启动where,因此start与where相关,而与where搜索的文件无关 dir列出目录内容,但也不执行任何操作

我需要在cmd windows 7中搜索并运行该程序。我尝试了以下代码,当一起输入时,它似乎没有拾取操作员

START WHERE /R C:\ Program.exe /uninstall
dir /s /b Program.exe /uninstall

是否有另一种(更简单/更好的)方法来使用操作员启动程序?

其中
搜索文件,但不执行它们
start where
只在新的
cmd
实例中启动
where
,因此
start
where
相关,而与
where
搜索的文件无关

dir
列出目录内容,但也不执行任何操作。实际上,您应该使用
dir/S/B C:\Program.exe
来搜索
C:\
中的
Pogram.exe
;请注意,
dir/S/B Program.exe
在当前工作目录中搜索
Program.exe
(递归)

/uninstall
开关被视为
where
或所述的
dir
命令行的一部分

您需要将任务分为两个阶段:

  • C:\
    中递归搜索文件
    Program.exe
  • 使用选项
    /uninstall
    执行文件
    Program.exe
    下面是如何使用
    where

    for/F“delims=“%%E in('where/R“C:\”“Program.exe“)do(
    “%%E”/卸载
    )
    
    下面是一种使用
    dir
    (已将
    /a:-D
    选项添加到名为
    Program.exe
    的不返回目录中)的方法:

    for/F“delims=“%%E in('dir/S/B/A:-D“C:\Program.exe”)do(
    “%%E”/卸载
    )
    

    如果在
    C:\
    中有更多名为
    Program.exe的文件,则所有文件都将被执行。

    其中
    搜索文件,但不执行它们
    start where
    只在新的
    cmd
    实例中启动
    where
    ,因此
    start
    where
    相关,而与
    where
    搜索的文件无关

    dir
    列出目录内容,但也不执行任何操作。实际上,您应该使用
    dir/S/B C:\Program.exe
    来搜索
    C:\
    中的
    Pogram.exe
    ;请注意,
    dir/S/B Program.exe
    在当前工作目录中搜索
    Program.exe
    (递归)

    /uninstall
    开关被视为
    where
    或所述的
    dir
    命令行的一部分

    您需要将任务分为两个阶段:

  • C:\
    中递归搜索文件
    Program.exe
  • 使用选项
    /uninstall
    执行文件
    Program.exe
    下面是如何使用
    where

    for/F“delims=“%%E in('where/R“C:\”“Program.exe“)do(
    “%%E”/卸载
    )
    
    下面是一种使用
    dir
    (已将
    /a:-D
    选项添加到名为
    Program.exe
    的不返回目录中)的方法:

    for/F“delims=“%%E in('dir/S/B/A:-D“C:\Program.exe”)do(
    “%%E”/卸载
    )
    

    如果在
    C:\
    中有更多名为
    Program.exe的文件,所有文件都将被执行。

    为什么它会工作?该程序安装在不同PC的不同目录中,我需要搜索并启动卸载。到目前为止,它能够找到文件并启动它。它忽略了我通常在cmd C:\location\program.exe/uninstall中键入的“/uninstall”来删除该程序。抱歉,我没有意识到搜索功能没有运行该程序。我的错。有没有办法通过搜索运行该程序?为什么它会工作?该程序安装在不同PC的不同目录中,我需要搜索并启动卸载。到目前为止,它能够找到文件并启动它。它忽略了我通常在cmd C:\location\program.exe/uninstall中键入的“/uninstall”来删除该程序。抱歉,我没有意识到搜索功能没有运行该程序。我的错。有没有办法通过搜索运行程序?也许值得一提:
    其中
    只在
    %path%
    中的文件夹中查找,因此速度非常快
    dir
    将向下搜索整个文件夹树(使用
    dir/s/b c:\program.exe
    搜索整个驱动器),这也会在
    %path%
    之外找到结果,但可能需要在一个大的、满驱动器上喝一两杯咖啡…@Stephan,OP使用了
    /R
    选项,因此,在这种情况下,
    dir
    where
    是等效的……感谢您提供的解决方案,希望澄清C:\program.exe如何在C:\?如果我想在C:\windows中搜索program.exe是否也是C:\windows\program.exe?如果指定
    where/R“C:\windows”“program.exe”
    dir/S/B/A:-D“C:\windows\program.exe”
    ,文件
    program.exe
    将在
    C:\windows
    或任何子目录中找到,例如,类似于
    C:\WINDOWS\System32
    ,但如果它位于
    C:\TEMP
    ,则找不到它。也许值得一提的是:
    其中
    只在
    %path%
    内的文件夹中查找,因此速度相当快
    dir
    将向下搜索整个文件夹树(使用
    dir/s/b c:\program.exe
    搜索整个驱动器),这也会在
    %path%
    之外找到结果,但可能需要在一个大的、满驱动器上喝一两杯咖啡…@Stephan,OP使用了
    /R
    选项,因此,在这种情况下,
    dir
    where
    是等效的……感谢您提供的解决方案,希望澄清C:\program.exe如何在C:\?如果要在C:\windows中搜索program.exe是否也是C:\windows\program.exe?如果指定
    where/R“C:\windows”“program.exe”
    dir