批處理新手入門導讀[視頻教程]批處理基礎視頻教程[視頻教程]VBS基礎視頻教程
[批處理文件精品]批處理版照片整理器[批處理文件精品]純批處理備份&還原驅動在線第三方下載
返回列表 發帖

Windows下用批處理批量創建快捷方式

本帖最后由 y169168712 于 2020-9-12 16:16 編輯

希望有人能把這個批處理改進一下做成三層的,或者做成PowerShell版的

要用到的命令行工具NirCmd
NirCmd.exe下載后復制到系統目錄
32位系統復制到C:\Windows\System32
64位系統復制到C:\Windows\SysWOW64

NirCmd下載地址
http://www.nirsoft.net/utils/nircmd-x64.zip
http://www.onlinedown.net/soft/970876.htm
NirCmd 中文版幫助文檔
http://down.51cto.com/data/1976412



批量創建快捷方式,有分類目錄

創建目錄環節

首先創建好目錄,下載好軟件,按照下面的格式放入目錄,軟件必須是綠色便攜(Portable),并且支持中文路徑,如果不支持中文路徑就得改為英文路徑。
注意以下目錄路徑中不能帶有空格,遇到空格必須替換成-或者其他字符,最好刪除空格。#號后面的exe文件名不能重復,如果重復了需要更改為其他名稱,exe應用名也要一起更改。
1.創建主目錄
x:\app

2.創建分類目錄
x:\app\下載
x:\app\硬件檢測
x:\app\系統工具
x:\app\游戲工具
x:\app\網絡游戲
x:\app\單機游戲

3.分類目錄放入便攜軟件,我的思路是使用文件夾作為參數,用#號作為分割符,#號前面是快捷方式的名稱,#號后面是exe運行文件的名稱。
使用系統自帶forfiles命令搜索.exe文件,使用nircmd shortcut命令批量創建快捷方式。


放入便攜軟件格式如下:
x:\apps\下載\迅雷#ThunderStart
x:\apps\硬件檢測\顯卡檢測gpu-z#GPU-Z
x:\apps\系統工具\Hosts編輯器#HostsEditor
...
...


創建批處理環節

創建后的快捷方式位置默認在桌面app文件夾有需要可以更改。

批處理x:\app\批量創建快捷方式.bat內容為:
  1. @echo off
  2. rem 設置時間變量
  3. set "t=%time%"
  4. rem 刪除快捷方式
  5. ::nircmd execmd RD /s /q ~$folder.desktop$\app
  6. set LOGFILE=batch.log
  7. call :LOG > %LOGFILE%
  8. @echo off
  9. rem 記錄運行所需的時間
  10. set "t1=%time%"
  11. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  12. set /a "times=(%t1:~,2%-%t:~,2%%add%)*360000+(1%t1:~3,2%%%100-1%t:~3,2%%%100)*6000+(1%t1:~6,2%%%100-1%t:~6,2%%%100)*100+(1%t1:~-2%%%100-1%t:~-2%%%100)" ,"ss=times/100%%60","mm=times/6000%%60","hh=times/360000","ms=times%%100"
  13. @echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
  14. echo 本次批處理運行時間為%hh%小時:%mm%分鐘:%ss%.%ms%秒  生成日志文件batch.log
  15. pause
  16. exit /B
  17. :LOG
  18. @echo on
  19. rem 創建快捷方式
  20. for /f %%i in ('dir /b /a:d /o:n') do (
  21. for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  22. forfiles /p ".\%%i\%%a#%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\%%i %%a")
  23. )
復制代碼
批量創建快捷方式,沒有分類目錄


首先創建好目錄,下載好軟件,按照下面的格式放入目錄,軟件必須是綠色便攜(Portable),并且支持中文路徑,如果不支持中文路徑就得改為英文路徑。
注意以下目錄路徑中不能帶有空格,遇到空格必須替換成-或者其他字符,最好刪除空格。#號后面的exe文件名不能重復,如果重復了需要更改為其他名稱,exe應用名也要一起更改。

創建主目錄:
x:\游戲

放入游戲格式如下
x:\游戲\魔獸爭霸3#War3
x:\游戲\孤單槍手#AlienShooter

創建批處理x:\游戲\批量創建游戲快捷方式.bat內容為:
  1. @echo off
  2. rem 設置時間變量
  3. set "t=%time%"
  4. rem 刪除快捷方式
  5. ::nircmd execmd RD /s /q ~$folder.desktop$\app
  6. set LOGFILE=batch.log
  7. call :LOG > %LOGFILE%
  8. @echo off
  9. rem 記錄運行所需的時間
  10. set "t1=%time%"
  11. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  12. set /a "times=(%t1:~,2%-%t:~,2%%add%)*360000+(1%t1:~3,2%%%100-1%t:~3,2%%%100)*6000+(1%t1:~6,2%%%100-1%t:~6,2%%%100)*100+(1%t1:~-2%%%100-1%t:~-2%%%100)" ,"ss=times/100%%60","mm=times/6000%%60","hh=times/360000","ms=times%%100"
  13. @echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
  14. echo 本次批處理運行時間為%hh%小時:%mm%分鐘:%ss%.%ms%秒  生成日志文件batch.log
  15. pause
  16. exit /B
  17. :LOG
  18. @echo on
  19. rem 創建快捷方式
  20. for /f "delims=# tokens=1-2" %%a in ('dir /b /a:d /o:n') do (
  21. forfiles /p ".\%%a#%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%a"
  22. )
復制代碼
運行批處理x:\游戲\批量創建游戲快捷方式.bat會在桌面生成“app\app”文件夾以及快捷方式圖標。
一個人,征服了自己,也就征服了世界。

回復 1# y169168712


    是否考慮一下代碼里面哪些地方限制了它不支持帶空格的路徑?在合適的地方加上雙引號是否可以解決這個問題呢
【批處理在線視頻分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公眾號、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我幫忙寫的代碼不需要付錢,不用找我要支付寶或微信賬號。如果一定要給,請到微信群給大家發紅吧。

TOP

本帖最后由 y169168712 于 2020-9-12 16:48 編輯

回復 2# Batcher


    加了兩組雙引號,#號后面和應用exe可以出現空格,#號前面和分類文件夾暫時沒辦法解決
一個人,征服了自己,也就征服了世界。

TOP

返回列表
36选7开奖结果今天福建 福彩排列7规则 加拿大快乐8开奖网站 一分彩开奖号码 股票指数含义 加拿大快乐8技巧 辽宁11选五一定牛 预测 东方汇赢配资 全球期货配资基地 香港最快开奖现场直播结果 甘肃11选5前三直选遗漏表 2013上证指数走势图 广东快乐十分玩法说明 七星彩预测牛材网 山东11选五5开奖走势图 2019低价龙头股 江苏快3和值有哪些号