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

Batch: move - cant find the path specified (adding bat to startup)

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

setup.bat

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

run.bat

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

原因是当你'Run as admin'当前目录改变了。为了证明这一点,暂时将这两行放在你的 bat 文件的开头附近:

echo(cd=%cd%
pause

现在 运行 正常运行一次,以管理员身份运行一次,您会发现当前目录不是您所期望的。为了解决这个问题,我几乎总是将这一行放在我的 bat 文件的开头(在尝试引用任何 files/folders 之前):

pushd %~dp0

这将确保当前目录恢复到您开始的位置。为了证明这一点,将上面的行放在临时 ECHO 语句之前并再次测试。