Batch file 需要使用批处理文件或powershell为程序设置文件扩展名吗
我需要一个编程方法来设置关联作为安装程序的一部分 我试图设置一个文件扩展名,这样当用户双击该扩展名时,它就会运行相关的程序(在本例中为c:\temp\test.bat) 我曾尝试在.bat文件中使用assoc和ftype命令,但当文件.003(仅用于测试目的)打开时,它仍会打开已设置为该扩展名默认值的解包程序。请参见控制面板>程序>默认程序>设置关联的图像。如果我使用此界面并更改与002文件关联的程序,那么当我双击test.002时,它会运行test.bat 我需要在安装中包含此关联,以便能够在GUI中的.bat文件中执行我可以执行的操作。.bat命令assoc和ftype似乎没有对图像中的GUI进行更改,并且仍然在此处启动Unpacker not test.batenter图像描述Batch file 需要使用批处理文件或powershell为程序设置文件扩展名吗,batch-file,Batch File,我需要一个编程方法来设置关联作为安装程序的一部分 我试图设置一个文件扩展名,这样当用户双击该扩展名时,它就会运行相关的程序(在本例中为c:\temp\test.bat) 我曾尝试在.bat文件中使用assoc和ftype命令,但当文件.003(仅用于测试目的)打开时,它仍会打开已设置为该扩展名默认值的解包程序。请参见控制面板>程序>默认程序>设置关联的图像。如果我使用此界面并更改与002文件关联的程序,那么当我双击test.002时,它会运行test.bat 我需要在安装中包含此关联,以便能够在
我也未能成功使用
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/高架外壳/。。。供你搜索
对于您的特定扩展,最好的方法是:
regedit
&查找上述键(扩展名引导至文件类型并搜索文件类型).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/高架外壳/。。。供你搜索
对于您的特定扩展,最好的方法是:
regedit
&查找上述键(扩展名引导至文件类型并搜索文件类型).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和批处理文件是编程工具/语言