应用场景:我经常会在桌面创建文件,用于记录一些内容,但是又想长期保存,一般会放到D盘。之前的操作是,在D盘拷贝一份,隔一段时间用桌面的去覆盖。
分析:太蠢了!!!后续就修改为在把桌面的文件,移动到D盘,生成快捷方式,再把快捷方式拷到桌面。这个方式还可以,不过秉承懒是第一生产力的伟大原则,决定把这个过程自动化。
1、在桌面创建一个文件夹,link_copy。link_copy内的文件如下:
2、readme.txt
#############################################
link_copy:
- link_file.py
- start.bat
- readme.txt
功能:移动源文件并创建快捷方式
环境:Python3
执行:双击start.bat
############################################
3、start.bat,如果自己拷贝的话,需要修改这里边的目录名
@echo off
set source_path=C:\Users\zorrolzhang\Desktop\link_copy\
set end_path=D:\zorro\
set /p file_name="Please input filename: "
set end_name=.lnk
call py link_file.py %source_path% %end_path% %file_name%
@ping -n 2 127.1>nul
::echo %file_name%
echo %end_path%%file_name%%end_name%
move %end_path%%file_name%%end_name% %source_path%
pause
4、link_file.py
# -*- encoding:utf-8 -*-
import os
import win32com.client as client
import shutil
import sys
# 工作目录
#source_path = 'C:\Users\zorrolzhang\Desktop\link_copy\'
# 源文件存放目录
#save_path = 'D:\zorro\'
source_path = sys.argv[1].replace('/', '\\')
save_path = sys.argv[2].replace('/', '\\')
inputname = sys.argv[3]
print(source_path, save_path, inputname)
shell = client.Dispatch("WScript.Shell")
#inputname = input('Input copy filename: ')
filename = source_path + '\\' + inputname
savename = save_path + '\\' + inputname
# 移动源文件到指定目录
shutil.move(filename, savename)
print('Move source_file success...')
# 创建文件快捷方式
linkname = savename + '.lnk'
shortcut = shell.CreateShortCut(linkname)
shortcut.TargetPath = savename
shortcut.save()
print('Create link_copy success...')
使用方式:将桌面创建的文件移动到此目录下,双击start.bat,会返回一个快捷方式,快捷方式移动到桌面即可。