如何将批处理脚本同目录下的文件移动至其他路径?
解决批处理移动文件找不到目标的问题
确认文件存在性
先核实uninstall.bat确实和当前批处理在同一目录,检查文件名拼写(包括是否被系统隐藏扩展名,比如实际是uninstall.bat.txt)。修正路径写法
%~dp0本身已带末尾反斜杠,无需额外添加,且{username}要替换成系统环境变量%username%才能正确获取当前用户目录,修正后的命令:move "%~dp0uninstall.bat" "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"处理权限问题
Startup目录需要管理员权限才能写入,要么右键批处理选择「以管理员身份运行」,要么在批处理开头添加权限请求代码:@echo off :: 请求管理员权限 >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit /B :gotAdmin if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) pushd "%CD%" CD /D "%~dp0" :: 执行移动 move "%~dp0uninstall.bat" "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"验证路径正确性
可以先添加打印命令确认路径是否正确:echo 源文件路径:%~dp0uninstall.bat echo 目标路径:C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup pause运行后检查显示的路径是否与实际一致。
内容的提问来源于stack exchange,提问作者Sharky
相关产品推荐
相关产品推荐

