我在我的主要文件中使用第二个批处理文件来保存/加载变量,如下所示:
if not exist "KeemyDataPersistence.bat" (
echo @ECHO OFF > KeemyDataPersistence.bat
echo SET GENDER=F >> KeemyDataPersistence.bat
echo SET BGCOLOR=0 >> KeemyDataPersistence.bat
echo SET FGCOLOR=2 >> KeemyDataPersistence.bat
)
call KeemyDataPersistence.bat
它工作正常,但我想将第二个文件(KeemyDataPersistence.bat
)与另一个扩展程序.keemy
保存,KeemyDataPersistence.keemy
。它只是通过在整个代码中用.keemy替换.bat来保存正常,但是当使用call KeemyDataPersistence.keemy
时,它会运行Windows默认窗口来选择用户想要打开它的程序。
我如何才能将文件作为批处理文件调用?
答案 0 :(得分:2)
首先尝试使用管理员权限(和.bat扩展名)运行此脚本:
@echo off
rem :: A files with .keemy extension will be able to execute batch code but is not perfect as the %0 argument is lost
rem :: "installing" a caller.
if not exist "c:\caller.bat" (
echo @echo off
echo copy "%%~nx1" "%%temp%%\%%~nx1.bat" /Y ^>nul
echo "%%temp%%\%%~nx1.bat" %%*
) > c:\caller.bat
rem :: associating file extension
assoc .keemy=batps
ftype batps=c:\caller "%%1" %*