只执行一次的代码,Python Startup文件夹

时间:2017-04-18 17:57:28

标签: python batch-file directory python-3.5 startup

嘿,谢谢你的所有答案。我尝试编写一段只执行一次的python代码(第一次安装程序)并将程序复制到windows启动文件夹中。

(C:\ Users \ USER \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup)

  

这是我为此写的代码。 (请不要评判我。我知道   非常糟糕的代码。但我对编码很新。 (这是第二个   我尝试写的小程序)

import os
import shutil


#get username
user = str(os.getlogin())
user.strip()

file_in = ('C:/Users/')
file_in_2 = ('/Desktop/Py Sandbox/test/program.py')
file_in_com = (file_in + user + file_in_2)

folder_seg_1 = ('C:/Users/')
folder_seg_2 = ('/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup')
#create FolderPath
folder_com = (folder_seg_1 + user + folder_seg_2)

shutil.copy2(file_in_com, folder_com)
  

因为我收到错误,所以没有这样的内部,外部,   名为Installer的命令,程序或批处理文件。我试着生成一个批处理文件   在安装过程完成时执行的任何内容都没有。(但错误仍然存​​在。)

save_path = 'C:/Windows/assembly/temp'
name_of_file = str("Installer")
completeName = os.path.join(save_path, name_of_file+".bat")
file1 = open(completeName, "w")
file1.close()
  

这背后的主要思想是我的主程序,你执行   它运行上面的代码并将自身复制到启动文件夹。   然后代码整个安装程序文件从我的主要删除   程序

import Installer

#run Installer File
os.system('Installer')
os.remove('Installer.py')

但也许那里有人知道这个问题的答案。 正如我之前所说,感谢您的所有答案< 3。

BTW我目前正在使用Python 3.5。

2 个答案:

答案 0 :(得分:0)

好的家伙现在我终于设法解决了这个问题。实际上并不是那么难,但你需要从另一个角度思考。 这是我想出的代码。

import os
import sys
import shutil

# get system boot drive
boot_drive = (os.getenv("SystemDrive"))

# get current Username
user = str(os.getlogin())
user.strip()

# get script path
script_path = (sys.argv[0])


# create FolderPath (Startup Folder)
folder_seg_1 = (boot_drive + '/Users/')
folder_seg_2 = ('/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup')
folder_startup = (folder_seg_1 + user + folder_seg_2)


#check if file exits, if yes copy to Startup Folder
file_name = (ntpath.basename(script_path))
startup_file = (folder_startup + ("/") + file_name)
renamed_file = (folder_startup + ("/") + ("SAMPLE.py"))


# checkfile in Startup Folder
check_path = (os.path.isfile(renamed_file))

if check_path == True:
    pass
else:
    shutil.copy2(script_path, folder_startup)
    os.rename(startup_file, renamed_file)
  

此脚本获取您的用户名,启动驱动器,文件位置   您的文件比创建所需的所有路径。喜欢你的个人   启动文件夹。它比检查是否已存在文件   启动文件夹,如果是,它只是什么都不做,继续,如果不是   将文件复制到启动文件夹而不是重命名(如果需要,可以使用它,但不需要)。

答案 1 :(得分:0)

没有必要执行 os.getenv("SystemDrive")os.getlogin(),因为 os.getenv("AppData") 已经获得了两者。所以我所知道的最直接的方法是:

path = os.path.join(os.getenv("appdata"),"Microsoft","Windows","Start Menu","Programs","Startup")