rem 构造时间戳 set timestamp=%year%_%month%%day%_%hour%%minute% echo %timestamp% set sendto_path=%APPDATA%\Microsoft\Windows\SendTo echo %sendto_path% rem 判断参数个数 if"%~1"=="" ( rem 创建脚本的快捷方式 set bat_dir=%~dp0 set bat_file=%~nx0 echo %sendto_path% call :createShortcut "fCopy""c""%sendto_path%" ping 127.0.0.1 -n 1 >nul move "fCopy.lnk" %sendto_path%\"fCopy.lnk" call :createShortcut "fMove" "m" "%sendto_path%" ping 127.0.0.1 -n 1 >nul move "fMove.lnk" %sendto_path%\"fMove.lnk" explorer shell:sendto goto :eof )
if"%~2"=="" ( echo 请输入第二个参数: 文件路径 goto :eof )
rem 提取参数 set operation=%~1 set sourceFile=%~2
rem 确保文件存在 if not exist "%sourceFile%" ( echo 文件不存在: %sourceFile% goto :eof )
rem 获取文件的目录、文件名和扩展名 set fileDir=%~dp2 set fileName=%~n2 set fileExt=%~x2
rem 检查文件名中是否包含 V.,如果有则去除旧的时间戳 for /f "tokens=1 delims=V." %%a in ("%fileName%") do ( set updatedName=%%a )
rem 添加新的时间戳 set newName=%updatedName%V.%timestamp%%fileExt% rem 目标文件路径 set targetFile=%fileDir%%newName%
rem 选择操作 if /i "%operation%"=="c" ( copy /y "%sourceFile%""%targetFile%" echo 文件已复制到: %targetFile% ) elseif /i "%operation%"=="m" ( move /y "%sourceFile%""%targetFile%" echo 文件已移动到: %targetFile% ) else ( echo 无效的操作参数,请使用 c 或 m )
endlocal goto :eof
:createShortcut rem 创建快捷方式的子例程 rem 参数:1-快捷方式名称,2-传递的参数,3-目标路径 set shortcutName=%1 set shortcutArgs=%2 set targetPath=%3 set shortcutName2=%1.lnk set shortcutName2=%shortcutName2:"=% rem 创建快捷方式.vbs文件 ( echo Set WshShell = CreateObject("WScript.Shell"^) echo Set oShellLink = WshShell.CreateShortcut("%shortcutName2%"^) echo oShellLink.TargetPath = "%bat_dir%%bat_file%" echo oShellLink.Arguments = %shortcutArgs% echo oShellLink.WorkingDirectory = "%bat_dir%" echo oShellLink.Save ) > "%temp%\createShortcut_%shortcutName%.vbs" rem 运行.vbs文件创建快捷方式 cscript //nologo "%temp%\createShortcut_%shortcutName%.vbs" del "%temp%\createShortcut_%shortcutName%.vbs" goto :eof