2011-10-24 97 views
0

我是一個Mac/iPhone開發人員,所以我不太瞭解Windows腳本... 關鍵是我必須安裝許多計算機上啓動應用程序,所以我想有一個USB記憶棒有兩個.bat文件:複製.bat關閉USB並將其複製到啓動文件夾腳本 - WinXP

  1. 將是真正的「應用程序」
  2. 將是會複製1st.bat腳本關閉我的USB到Windows啓動文件夾...

我該怎麼做?

我的USB的名稱是「USB」,我的啓動應用程序的名稱是「startup.bat」。 我已經說過了,我在Windows程序中非常蹩腳,而且我非常需要它;)

非常感謝!

回答

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. 關閉命令回顯,使腳本看起來更乾淨給最終用戶。
  2. 將當前目錄設置爲此腳本所在的位置。
  3. 按預期在Windows Vista或更高版本中設置啓動文件夾的路徑。
  4. 如果此文件夾存在,請跳到複製階段。
  5. 按照預期在Windows 2000或更高版本中設置啓動文件夾的路徑。
  6. 如果此文件夾存在,請跳到複製階段。
  7. 報告無法找到啓動文件夾。
  8. 退出批處理腳本。
     
  9. 可跳轉到的標籤。
  10. 將「MyApp」從當前文件夾(USB)複製到啓動文件夾。
+0

問題是 - 如果我的驅動器號不是D,該怎麼辦?非常感謝...我不能僅僅使用「CD USB」來做它?謝謝! –

+0

它不使用驅動器號D :.它使用腳本所在的驅動器號。'%〜0dp'是「此腳本的驅動器和路徑」的代碼。如果你的腳本是「E:\ MyInstaller \ Install.bat」,那麼'%〜dp0'是「E:\ MyInstaller」。 'Dir/D'是「改變驅動器和路徑」。 –

+0

以及如果我的啓動應用程序是.bat,該怎麼辦?它會起作用嗎? thx ...導致這種現象不起作用:( –

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\" 
+0

但我在哪裏告訴它從哪裏複製? –

+0

或者我把它放到我的「startup.bat」腳本中? –

+0

那些在Vista和更高版本上不會被保護的位置? –

1

我不想爲Hand-E-Food的答案留下功勞,但我想出了爲什麼他的代碼不起作用,我不能回覆他的答案,所以在這裏。而不是在Copy行中使用%StartupFolder%變量周圍的引號,請在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%去掉引號並導致錯誤信息,即它無法找到文件夾,但至少我知道它在最後做了些什麼。一旦我發現它正在尋找錯誤的文件夾,因爲它認爲文件夾名稱停在它的名字的第一個空格處,我只是在引號中添加了內容,瞧!

+0

謝謝!我錯過了詳細信息。:-) –

相關問題