我是Mac / iPhone开发人员,所以我对Windows脚本编程不太了解... 关键是我必须在许多计算机上安装一个启动应用程序,所以我想要一个带有两个.bat文件的USB记忆棒:
我该怎么做?
我的USB名称是“USB”,我的启动应用程序的名称是“startup.bat”。 我已经说过了,我在Windows编程方面非常蹩脚,我急需它;)
非常感谢!
答案 0 :(得分:3)
尝试以下脚本。这将导致应用程序在当前用户登录时运行。如果没有管理权限,您将无法一次性为所有用户执行此操作。
@Echo Off
CD /D %~dp0
Set StartupFolder=%AppData%\Microsoft\Windows\Start Menu\Programs\Startup
If Exist "%StartupFolder%" Goto :FoundStartup
Set StartupFolder=%UserProfile%\Start Menu\Programs\Startup
If Exist "%StartupFolder%" Goto :FoundStartup
Echo Cannot find Startup folder.
Exit /B
:FoundStartup
Copy "MyApp" "%StartupFolder%"
每一行都执行以下操作:
答案 1 :(得分:1)
我不想因为Hand-E-Food的回答而受到赞扬,但我弄清楚为什么他的代码不起作用而且我无法回复他的回答,所以在这里。不要在%StartupFolder%
行的Copy
变量周围使用引号,而是在Set StartupFolder
的路径周围使用它们。因此,代码如下。
@Echo Off
CD /D %~dp0
Set StartupFolder="%AppData%\Microsoft\Windows\Start Menu\Programs\Startup"
If Exist %StartupFolder% Goto :FoundStartup
Set StartupFolder="%UserProfile%\Start Menu\Programs\Startup"
If Exist %StartupFolder% Goto :FoundStartup
Echo Cannot find Startup folder.
Exit /B
:FoundStartup
Copy "MyApp" %StartupFolder%
我想出这个的唯一原因是因为它也没有为我做任何事情,所以我尝试删除%StartupFolder%
周围的引号,这导致出现错误消息找不到文件夹,但至少我知道它最后正在做些什么。一旦我发现它正在寻找错误的文件夹,因为它认为文件夹名称在其名称的第一个空格处停止,我只需在引号中添加并瞧!
答案 2 :(得分:0)
尝试此操作(将app.bat替换为您调用的实际应用程序)。这应该适用于Windows 2000及更高版本。
IF EXIST "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\*.*" COPY APP.BAT "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\"
IF EXIST "C:\Documents and Settings\All Users\Start Menu\Programs\Startup\*.*" COPY APP.BAT "C:\Documents and Settings\All Users\Start Menu\Programs\Startup\"