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

时间:2015-08-27 22:10:23

标签: batch-file startup

嘿试图通过执行另一个蝙蝠来添加一个蝙蝠到我的启动文件夹。

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

如果以admin身份运行:

the system cannot find the file specified

2 个答案:

答案 0 :(得分:1)

"%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\,而move "run.bat" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\" pause 并不存在。

将setup.bat更改为

   <location path="/">
    <system.web>
      <authorization>
        <allow users="user1@mydomain.com"/>
        <deny users="*"/>
      </authorization>
    </system.web>
   </location>

   <system.web>
    <authentication mode="None"/>
    <compilation debug="true" targetFramework="4.5.2"/>
    <httpRuntime targetFramework="4.5.2"/>
    <pages>
      <namespaces>
        <add namespace="System.Web.Optimization"/>
        <add namespace="Microsoft.AspNet.Identity"/>
      </namespaces>
      <controls>
        <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt"/>
      </controls>
    </pages>
    <membership>

答案 1 :(得分:1)

原因在于,当您以管理员身份运行时,&#39;当前目录已更改。为了证明这一点,暂时将这两行放在bat文件的开头附近:

echo(cd=%cd%
pause

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

pushd %~dp0

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