获取通过批处理文件关联的已打开文件的名称(通过批处理文件)(由所有者关闭)

时间:2015-03-29 12:10:26

标签: batch-file

你可能想要更正标题..但我会尝试解释我真正想要的东西..

我的批处理文件中有这个( Assoc.bat ):

@echo off
Assoc .unity3d=unity3dfile
Ftype unity3dfile="%homedrive%\MyFolder\Player.bat" %1

另一个( Player.bat ):

@echo off
echo %1
pause

我想要的是 Player.bat 来检测我打开的 .unity3d 文件的名称。

我会让你更短。

Assoc.bat 关联 .unity3d 文件,因此我的自定义文件夹中的“Player.bat”文件会将其打开..

Player.bat 必须输出已打开的 .unity3d 文件的名称(当我打开.unity3d文件时,它会打开 Player.bat 文件),所以输出应如下所示:

  

“[路径] \ Game.unity3d”

我知道“%1”获取批处理文件中“Drag n'Dropped”文件的名称。但这就是我不想要的。

这是a video

我希望你能理解我的英语和我想要的东西.. 请不要因此而恨我..

任何想法?

编辑:我发现了一种不同的方式来制作我正在工作的程序。

谢谢大家试图发牢骚。

2 个答案:

答案 0 :(得分:0)

啊,我看到了问题。 .unity3d文件的路径包含一个空格,它会破坏文件参数的解析。

简单的解决方法是在定义FTYPE

时在%1周围加上引号
ftype unity3dfile="%homedrive%\MyFolder\Player.bat" "%1"

答案 1 :(得分:0)

assoc.bat文件中,您需要使用

Ftype unity3dfile="%homedrive%\MyFolder\Player.bat" "%%1"

您需要转义百分号以防止解析器使用%1的第一个参数替换assoc.bat