Batch file 需要使用批处理文件或powershell为程序设置文件扩展名吗

Batch file 需要使用批处理文件或powershell为程序设置文件扩展名吗,batch-file,Batch File,我需要一个编程方法来设置关联作为安装程序的一部分 我试图设置一个文件扩展名,这样当用户双击该扩展名时,它就会运行相关的程序(在本例中为c:\temp\test.bat) 我曾尝试在.bat文件中使用assoc和ftype命令,但当文件.003(仅用于测试目的)打开时,它仍会打开已设置为该扩展名默认值的解包程序。请参见控制面板>程序>默认程序>设置关联的图像。如果我使用此界面并更改与002文件关联的程序,那么当我双击test.002时,它会运行test.bat 我需要在安装中包含此关联,以便能够在

我需要一个编程方法来设置关联作为安装程序的一部分

我试图设置一个文件扩展名,这样当用户双击该扩展名时,它就会运行相关的程序(在本例中为c:\temp\test.bat)

我曾尝试在.bat文件中使用assoc和ftype命令,但当文件.003(仅用于测试目的)打开时,它仍会打开已设置为该扩展名默认值的解包程序。请参见控制面板>程序>默认程序>设置关联的图像。如果我使用此界面并更改与002文件关联的程序,那么当我双击test.002时,它会运行test.bat

我需要在安装中包含此关联,以便能够在GUI中的.bat文件中执行我可以执行的操作。.bat命令assoc和ftype似乎没有对图像中的GUI进行更改,并且仍然在此处启动Unpacker not test.batenter图像描述


我也未能成功使用
assoc
ftype
命令。我放弃了,直接在注册中心工作

下面是我从python关联的两个部分合并的注册表文件的示例

第一部分:
HKEY\u CLASSES\u ROOT\.py
:将扩展名与文件类型关联。 第二部分:其余部分:将文件类型与各种操作关联

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.py]
@="Python.File"
"Content Type"="text/plain"

[HKEY_CLASSES_ROOT\Python.File]
@="Python File"

[HKEY_CLASSES_ROOT\Python.File\DefaultIcon]
@="C:\\Python34\\DLLs\\py.ico"

[HKEY_CLASSES_ROOT\Python.File\Shell]

[HKEY_CLASSES_ROOT\Python.File\Shell\Edit with IDLE]

[HKEY_CLASSES_ROOT\Python.File\Shell\Edit with IDLE\command]
@="\"C:\\Python34\\pythonw.exe\" \"C:\\Python34\\Lib\\idlelib\\idle.pyw\" -e \"%1\""

[HKEY_CLASSES_ROOT\Python.File\Shell\Edit with Pyscripter]
@="Edit with PyScripter"

[HKEY_CLASSES_ROOT\Python.File\Shell\Edit with Pyscripter\command]
@="\"C:\\Program Files\\PyScripter\\PyScripter.exe\" \"%1\""

[HKEY_CLASSES_ROOT\Python.File\Shell\Edit with Pythonwin]

[HKEY_CLASSES_ROOT\Python.File\Shell\Edit with Pythonwin\command]
@="C:\\Python34\\Lib\\site-packages\\Pythonwin\\Pythonwin.exe /edit \"%1\""

[HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle]
"MUIVerb"="&Edit with IDLE"
"Subcommands"=""

[HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell]

[HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell\edit35-32]
"MUIVerb"="Edit with IDLE 3.5 (32-bit)"

[HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell\edit35-32\command]
@="\"C:\\Users\\dartypc\\AppData\\Local\\Programs\\Python\\Python35-32\\pythonw.exe\" -m idlelib \"%L\" %*"

[HKEY_CLASSES_ROOT\Python.File\Shell\open]

[HKEY_CLASSES_ROOT\Python.File\Shell\open\command]
@="\"C:\\WINDOWS\\py.exe\" \"%1\" %*"

[HKEY_CLASSES_ROOT\Python.File\shellex]

[HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"
您可以创建/生成这样的文件,然后使用
REG IMPORT myregfile.REG
将值添加到注册表中

但您需要为此运行一个提升的命令提示符,否则您将得到“拒绝访问”。有很多链接指向UAC/高架外壳/。。。供你搜索

对于您的特定扩展,最好的方法是:

  • 使用windows手动关联该文件
  • 运行
    regedit
    &查找上述键(扩展名引导至文件类型并搜索文件类型)
  • 导出密钥,合并到单个.reg文件
  • 随意破解:)
  • 应用程序:

    当我必须使用pythonportable安装python关联时,我就这样做了。Python portable没有设置文件关联,因为没有安装程序。因此,我将
    .py
    文件与之关联,但该脚本文件的其他参数在此丢失:

    [HKEY_CLASSES_ROOT\Python.File\Shell\open\command]
    @="\"C:\\WINDOWS\\py.exe\" \"%1\""
    

    我刚刚编辑了该键并添加了缺少的
    %*
    ,因此python可以使用参数。之后,我导出了reg文件,可以在其他机器上使用。

    我也未能成功使用
    assoc
    ftype
    命令。我放弃了,直接在注册中心工作

    下面是我从python关联的两个部分合并的注册表文件的示例

    第一部分:
    HKEY\u CLASSES\u ROOT\.py
    :将扩展名与文件类型关联。 第二部分:其余部分:将文件类型与各种操作关联

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\.py]
    @="Python.File"
    "Content Type"="text/plain"
    
    [HKEY_CLASSES_ROOT\Python.File]
    @="Python File"
    
    [HKEY_CLASSES_ROOT\Python.File\DefaultIcon]
    @="C:\\Python34\\DLLs\\py.ico"
    
    [HKEY_CLASSES_ROOT\Python.File\Shell]
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\Edit with IDLE]
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\Edit with IDLE\command]
    @="\"C:\\Python34\\pythonw.exe\" \"C:\\Python34\\Lib\\idlelib\\idle.pyw\" -e \"%1\""
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\Edit with Pyscripter]
    @="Edit with PyScripter"
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\Edit with Pyscripter\command]
    @="\"C:\\Program Files\\PyScripter\\PyScripter.exe\" \"%1\""
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\Edit with Pythonwin]
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\Edit with Pythonwin\command]
    @="C:\\Python34\\Lib\\site-packages\\Pythonwin\\Pythonwin.exe /edit \"%1\""
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle]
    "MUIVerb"="&Edit with IDLE"
    "Subcommands"=""
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell]
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell\edit35-32]
    "MUIVerb"="Edit with IDLE 3.5 (32-bit)"
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell\edit35-32\command]
    @="\"C:\\Users\\dartypc\\AppData\\Local\\Programs\\Python\\Python35-32\\pythonw.exe\" -m idlelib \"%L\" %*"
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\open]
    
    [HKEY_CLASSES_ROOT\Python.File\Shell\open\command]
    @="\"C:\\WINDOWS\\py.exe\" \"%1\" %*"
    
    [HKEY_CLASSES_ROOT\Python.File\shellex]
    
    [HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
    @="{60254CA5-953B-11CF-8C96-00AA00B8708C}"
    
    您可以创建/生成这样的文件,然后使用
    REG IMPORT myregfile.REG
    将值添加到注册表中

    但您需要为此运行一个提升的命令提示符,否则您将得到“拒绝访问”。有很多链接指向UAC/高架外壳/。。。供你搜索

    对于您的特定扩展,最好的方法是:

  • 使用windows手动关联该文件
  • 运行
    regedit
    &查找上述键(扩展名引导至文件类型并搜索文件类型)
  • 导出密钥,合并到单个.reg文件
  • 随意破解:)
  • 应用程序:

    当我必须使用pythonportable安装python关联时,我就这样做了。Python portable没有设置文件关联,因为没有安装程序。因此,我将
    .py
    文件与之关联,但该脚本文件的其他参数在此丢失:

    [HKEY_CLASSES_ROOT\Python.File\Shell\open\command]
    @="\"C:\\WINDOWS\\py.exe\" \"%1\""
    

    我刚刚编辑了该键并添加了缺少的
    %*
    ,因此python可以使用参数。之后,我导出了reg文件,可以在其他机器上使用。

    I*无法手动修改,我需要将其作为自定义应用程序安装包的一部分进行编程。我的意思是:通过手动操作准备模板,然后导出注册表项以便在.bat文件中使用。这将不起作用,因为如果某些机器已经有谁知道已经建立了什么关联呢?您可以先使用assoc&ftype进行检查。我*无法手动修改。我需要以编程方式将其作为自定义应用程序安装包的一部分。我的意思是:通过执行以下操作来准备模板手动输入,然后导出注册表项以便在.bat文件中使用。这将不起作用,因为如果某些机器已经有谁知道已经建立了什么关联呢?您可以先与assoc&ftype进行检查。请删除此帖子。此帖子主要是关于用于编程的工具。powershell和批处理文件是编程工具/语言请删除保持这篇文章是关于主要用于编程的工具。powershell和批处理文件是编程工具/语言