Batch file 批处理:移动-找不到指定的路径(将bat添加到启动)

Batch file 批处理:移动-找不到指定的路径(将bat添加到启动),batch-file,startup,Batch File,Startup,嘿,试图通过执行另一个bat将bat添加到我的启动文件夹 setup.bat move "run.bat" "%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\" pause 跑吧,蝙蝠 echo "k" pause 如果我正常运行,错误消息会显示: The system cannot find the path specified 如果它以管理员身份运行: the system cannot find the

嘿,试图通过执行另一个bat将bat添加到我的启动文件夹

setup.bat

move "run.bat" "%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\"
pause
跑吧,蝙蝠

echo "k"
pause
如果我正常运行,错误消息会显示:

The system cannot find the path specified
如果它以管理员身份运行:

the system cannot find the file specified

%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\不作为目录存在

%appdata%扩展为C:\Users\Hawk\appdata\Roaming,因此您实际上是在告诉脚本转到C:\Users\Hawk\appdata\Roaming\\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\,该脚本不存在

将setup.bat更改为

move "run.bat" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\"
pause

原因是当您“以管理员身份运行”时,当前目录会发生更改。为了证明这一点,暂时将这两行放在bat文件的开头附近:

echo(cd=%cd%
pause
现在正常运行一次,作为管理员运行一次,您将看到当前目录不是您所期望的。为了解决这个问题,在尝试引用任何文件/文件夹之前,我几乎总是将这一行放在bat文件的开头:

pushd %~dp0

这将确保当前目录还原到您启动的位置。为了证明这一点,请在您的临时ECHO语句前放上一行,然后再次测试。

系统的哪个部分找不到指定的文件,您不明白吗?run.bat与setup位于同一目录中,它怎么找不到文件?显然这不是代码,geez将编辑它,您应该了解一下。隐藏相关细节对任何人都没有帮助,只会让找到解决方案变得更加困难。另外,您会看到该错误,因为run.bat和setup.bat不在同一目录中。或者,%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\不存在。我认为以管理员身份运行不会触发特洛伊木马程序警报,但它确实存在。有什么想法吗?