Board logo

标题: Windows下用批处理批量创建快捷方式 [打印本页]

作者: y169168712    时间: 2020-3-10 21:33     标题: 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”文件夹以及快捷方式图标。
作者: Batcher    时间: 2020-9-1 18:38

回复 1# y169168712


    是否考虑一下代码里面哪些地方限制了它不支持带空格的路径?在合适的地方加上双引号是否可以解决这个问题呢
作者: y169168712    时间: 2020-9-12 16:37

本帖最后由 y169168712 于 2020-9-12 16:48 编辑

回复 2# Batcher


    加了两组双引号,#号后面和应用exe可以出现空格,#号前面和分类文件夹暂时没办法解决
作者: y169168712    时间: 2020-10-20 13:19

解决同一个文件夹创建多个快捷方式,使用文件目录名加文本文件两种参数形式,文件目录名支持4个应用,如果需要支持更多可以添加文本文件

拷贝nircmd到系统目录
  1. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
  2. cd /d %~dp0
  3. copy nircmd.exe %WINDIR%\System32
  4. copy nircmd.exe %WINDIR%\SysWOW64
  5. pause
复制代码
创建带分类目录的快捷方式,默认快捷方式位置为开始菜单
  1. @echo off
  2. rem 使用说明:
  3. rem 1.文件夹快捷方式名中不能出现空格,程序名中可以出现空格,如果快捷方式名中出现空格只能显示空格前的名称。
  4. rem 2.文件夹格式:
  5. rem 格式1:快捷方式名1#程序名1
  6. rem 格式2:快捷方式名1#程序名1#快捷方式名2#程序名2
  7. rem 格式3:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3
  8. rem 格式4:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3#快捷方式名4#程序名4
  9. rem 程序名带空格的格式:快捷方式名1#程 序 名1
  10. rem 按txt内容创建快捷方式
  11. rem txt名称:快捷方式名1#程序名.txt
  12. rem txt位置:分类目录\快捷方式名1#程序名\快捷方式名1#程序名.txt
  13. rem txt内容:快捷方式名1#程序名1 换行 快捷方式名2#程序名2 换行 快捷方式名3#程序名3  ............
  14. rem 设置时间变量
  15. set "t=%time%"
  16. rem 删除开始菜单快捷方式
  17. nircmd execmd RD /s /q "~$folder.start_menu$"\apps
  18. set LOGFILE=batch.log
  19. call :LOG > %LOGFILE%
  20. @echo off
  21. rem 记录运行所需的时间
  22. set "t1=%time%"
  23. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  24. 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"
  25. @echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
  26. echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
  27. pause
  28. exit /B
  29. :LOG
  30. @echo on
  31. rem 按文件夹名称 创建快捷方式 一个文件
  32. for /f %%i in ('dir /b /a:d /o:n') do (
  33. for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  34. if exist "%~dp0%%i\%%a#%%b" forfiles /p ".\%%i\%%a#%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a"
  35. )
  36. )
  37. rem 按文件夹名称 创建快捷方式 二个文件
  38. for /f %%i in ('dir /b /a:d /o:n') do (
  39. for /f "delims=# tokens=1-4" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  40. if exist "%~dp0%%i\%%a#%%b#%%c#%%d" forfiles /p ".\%%i\%%a#%%b#%%c#%%d" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%c"
  41. )
  42. )
  43. rem 按文件夹名称 创建快捷方式 三个文件
  44. for /f %%i in ('dir /b /a:d /o:n') do (
  45. for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  46. if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f" (
  47. forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%c" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%f.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%e"
  48. )
  49. )
  50. )
  51. rem 按文件夹名称 创建快捷方式 四个文件
  52. for /f %%i in ('dir /b /a:d /o:n') do (
  53. for /f "delims=# tokens=1-8" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  54. if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" (
  55. forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%c" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%f.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%e" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%h.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%g"
  56. )
  57. )
  58. )
  59. rem 按txt内容 创建快捷方式 目录名一个文件
  60. for /f %%i in ('dir /b /a:d /o:n') do (
  61. for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  62. if exist ".\%%i\%%a#%%b\%%a#%%b.txt" for /f "delims=# tokens=1-2" %%s in (%~dp0%%i\%%a#%%b\%%a#%%b.txt) do (
  63. forfiles /p ".\%%i\%%a#%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a#%%b %%s")
  64. )
  65. )
  66. rem 按txt内容 创建快捷方式 目录名二个文件
  67. for /f %%i in ('dir /b /a:d /o:n') do (
  68. for /f "delims=# tokens=1-4" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  69. if exist ".\%%i\%%a#%%b#%%c#%%d\%%a#%%b.txt" for /f "delims=# tokens=1-2" %%s in (%~dp0%%i\%%a#%%b#%%c#%%d\%%a#%%b.txt) do (
  70. forfiles /p ".\%%i\%%a#%%b#%%c#%%d" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a#%%b %%s")
  71. )
  72. )
  73. rem 按txt内容 创建快捷方式 目录名三个文件
  74. for /f %%i in ('dir /b /a:d /o:n') do (
  75. for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  76. if exist ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f\%%a#%%b.txt" for /f "delims=# tokens=1-2" %%s in (%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f\%%a#%%b.txt) do (
  77. forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a#%%b %%s")
  78. )
  79. )
  80. rem 按txt内容 创建快捷方式 目录名四个文件
  81. for /f %%i in ('dir /b /a:d /o:n') do (
  82. for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  83. if exist ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h\%%a#%%b.txt" for /f "delims=# tokens=1-2" %%s in (%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h\%%a#%%b.txt) do (
  84. forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a#%%b %%s")
  85. )
  86. )
复制代码
创建单独的快捷方式,快捷方式位置为桌面
  1. @echo off
  2. rem 使用说明:
  3. rem 1.文件夹快捷方式名中不能出现空格,程序名中可以出现空格,如果快捷方式名中出现空格只能显示空格前的名称。
  4. rem 2.文件夹格式:
  5. rem 格式1:快捷方式名1#程序名1
  6. rem 格式2:快捷方式名1#程序名1#快捷方式名2#程序名2
  7. rem 格式3:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3
  8. rem 格式4:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3#快捷方式名4#程序名4
  9. rem 程序名带空格的格式:快捷方式名1#程 序 名1
  10. rem 按txt内容创建快捷方式
  11. rem txt名称:快捷方式名1#程序名.txt
  12. rem txt位置:分类目录\快捷方式名1#程序名\快捷方式名1#程序名.txt
  13. rem txt内容:快捷方式名1#程序名1 换行 快捷方式名2#程序名2 换行 快捷方式名3#程序名3  ............
  14. rem 设置时间变量
  15. set "t=%time%"
  16. rem 删除快捷方式
  17. ::nircmd execmd RD /s /q ~$folder.desktop$\app
  18. set LOGFILE=batch.log
  19. call :LOG > %LOGFILE%
  20. @echo off
  21. rem 记录运行所需的时间
  22. set "t1=%time%"
  23. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  24. 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"
  25. @echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
  26. echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
  27. pause
  28. exit /B
  29. :LOG
  30. @echo on
  31. rem 创建快捷方式 第一个
  32. for /f "delims=# tokens=1-2" %%a in ('dir /b /a:d /o:n') do (
  33. if exist ".\%%a#%%b" forfiles /p ".\%%a#%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%a"
  34. )
  35. rem 创建快捷方式 第二个
  36. for /f "delims=# tokens=1-4" %%a in ('dir /b /a:d /o:n') do (
  37. if exist ".\%%a#%%b#%%c#%%d" forfiles /p ".\%%a#%%b#%%c#%%d" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%a" & forfiles /p ".\%%a#%%b#%%c#%%d" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%c"
  38. )
  39. rem 创建快捷方式 第三个
  40. for /f "delims=# tokens=1-6" %%a in ('dir /b /a:d /o:n') do (
  41. if exist ".\%%a#%%b#%%c#%%d#%%e#%%f" forfiles /p ".\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%a" & forfiles /p ".\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%c" & forfiles /p ".\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%f.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%e"
  42. )
  43. rem 创建快捷方式 第四个
  44. for /f "delims=# tokens=1-8" %%a in ('dir /b /a:d /o:n') do (
  45. if exist ".\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" forfiles /p ".\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%a" & forfiles /p ".\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%c" & forfiles /p ".\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%f.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%e" & forfiles /p ".\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%h.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%g"
  46. )
  47. rem 按txt内容 创建快捷方式
  48. for /f "delims=# tokens=1-2" %%a in ('dir /b /a:d /o:n') do (
  49. if exist ".\%%a#%%b\%%a#%%b.txt" for /f "delims=# tokens=1-2" %%x in (%~dp0%%a#%%b\%%a#%%b.txt) do (
  50. forfiles /p ".\%%a#%%b" /M "%%y.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%x")
  51. )
  52. )
复制代码

作者: y169168712    时间: 2021-1-21 16:14

本帖最后由 y169168712 于 2021-4-21 16:42 编辑

一次小小的改进
创建带分类目录的快捷方式,默认快捷方式位置为开始菜单
  1. @echo off
  2. rem 使用说明:
  3. rem 按文件夹名称 创建快捷方式
  4. rem 文件夹格式:
  5. rem 格式1:快捷方式名1#程序名1
  6. rem 格式2:快捷方式名1#程序名1#快捷方式名2#程序名2
  7. rem 格式3:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3
  8. rem 格式4:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3#快捷方式名4#程序名4
  9. rem 程序名带空格的格式:快捷方式名1#程序 名1
  10. rem 注意事项:文件夹快捷方式名中不能出现空格,程序名中可以出现空格,如果快捷方式名中出现空格只能显示空格前的名称。
  11. rem 按txt内容创建快捷方式(不带子目录)
  12. rem txt文件名称:##.txt
  13. rem txt文件位置:分类目录\快捷方式名1##程序名\##.txt
  14. rem txt文件内容:快捷方式名1#程序名1 换行 快捷方式名2#程序名2 换行 快捷方式名3#程序名3  ............
  15. rem txt文件内容注意事项:快捷方式名中不能出现空格,程序名中可以出现空格
  16. rem txt文件编码:ANSI
  17. rem 按txt内容创建快捷方式(带子目录)
  18. rem txt文件名称:###.txt
  19. rem txt文件位置:分类目录\快捷方式名1##程序名\###.txt
  20. rem txt文件内容:快捷方式名1#程序名1 换行 快捷方式名2#程序名2 换行 快捷方式名3#程序名3  ............
  21. rem txt文件内容注意事项:快捷方式名中不能出现空格,程序名中可以出现空格
  22. rem txt文件编码:ANSI
  23. rem 生成快捷方式的路径,默认为开始菜单,有需要可以更改
  24. rem 生成快捷方式的路径为开始菜单:~$folder.start_menu$\apps\
  25. rem 生成快捷方式的路径为桌面:~$folder.desktop$\apps\
  26. rem 设置时间变量
  27. set "t=%time%"
  28. rem 删除开始菜单快捷方式(删除命令前面的注释::开启)
  29. ::nircmd execmd RD /s /q "~$folder.start_menu$"\apps
  30. rem 删除桌面快捷方式(删除命令前面的注释::开启)
  31. ::nircmd execmd RD /s /q "~$folder.desktop$"\apps
  32. rem 生成日志文件
  33. set LOGFILE=batch.log
  34. call :LOG > %LOGFILE%
  35. @echo off
  36. rem 记录运行所需的时间
  37. set "t1=%time%"
  38. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  39. 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"
  40. @echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
  41. echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
  42. pause
  43. exit /B
  44. :LOG
  45. @echo on
  46. rem 按文件夹名称创建快捷方式 一个exe文件 文件夹分割符:@ (有些程序路径中不能出现#号)
  47. for /f %%i in ('dir /b /a:d /o:n') do (
  48. for /f "delims=@ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  49. if exist "%~dp0%%i\%%a@%%b" forfiles /p ".\%%i\%%a@%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a"
  50. )
  51. )
  52. rem 按文件夹名称创建快捷方式 一个exe文件 文件分割符:#
  53. for /f %%i in ('dir /b /a:d /o:n') do (
  54. for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  55. if exist "%~dp0%%i\%%a#%%b" forfiles /p ".\%%i\%%a#%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a"
  56. )
  57. )
  58. rem 按文件夹名称创建快捷方式 二个exe文件 文件分割符:#
  59. for /f %%i in ('dir /b /a:d /o:n') do (
  60. for /f "delims=# tokens=1-4" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  61. if exist "%~dp0%%i\%%a#%%b#%%c#%%d" forfiles /p ".\%%i\%%a#%%b#%%c#%%d" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%c"
  62. )
  63. )
  64. rem 按文件夹名称创建快捷方式 三个exe文件 文件分割符:#
  65. for /f %%i in ('dir /b /a:d /o:n') do (
  66. for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  67. if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f" (
  68. forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%c" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%f.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%e"
  69. )
  70. )
  71. )
  72. rem 按文件夹名称创建快捷方式 四个exe文件 文件分割符:#
  73. for /f %%i in ('dir /b /a:d /o:n') do (
  74. for /f "delims=# tokens=1-8" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  75. if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" (
  76. forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%c" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%f.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%e" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%h.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%g"
  77. )
  78. )
  79. )
  80. rem 按文本文件(txt)内容创建快捷方式 不带子目录  文件分割符:## 文本文件名:##.txt
  81. for /f %%i in ('dir /b /a:d /o:n') do (
  82. for /f "delims=## tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  83. if exist ".\%%i\%%a##%%b\##.txt" for /f "delims=## tokens=1-2" %%s in (%~dp0%%i\%%a##%%b\##.txt) do (
  84. forfiles /p ".\%%i\%%a##%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\ %%s")
  85. )
  86. )
  87. rem 按文本文件(txt)内容创建快捷方式 带子目录  文件分割符:## 文本文件名:###.txt
  88. for /f %%i in ('dir /b /a:d /o:n') do (
  89. for /f "delims=## tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  90. if exist ".\%%i\%%a##%%b\###.txt" for /f "delims=## tokens=1-2" %%s in (%~dp0%%i\%%a##%%b\###.txt) do (
  91. forfiles /p ".\%%i\%%a##%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a %%s")
  92. )
  93. )
复制代码
创建单独的快捷方式,快捷方式位置为开始菜单
可以不修改目录名创建快捷方式,缺点是目录名中不能出现空格,可以使用批量重命名软件删除目录中的空格
  1. @echo off
  2. rem 使用说明:
  3. rem 生成快捷方式的路径,默认为开始菜单,有需要可以更改
  4. rem 生成快捷方式的路径为开始菜单:~$folder.start_menu$\game\
  5. rem 生成快捷方式的路径为桌面:~$folder.desktop$\game\
  6. rem 设置时间变量
  7. set "t=%time%"
  8. rem 删除开始菜单快捷方式(删除命令前面的注释::开启)
  9. nircmd execmd RD /s /q "~$folder.start_menu$"\game
  10. rem 删除桌面快捷方式(删除命令前面的注释::开启)
  11. ::nircmd execmd RD /s /q "~$folder.desktop$"\game
  12. set LOGFILE=batch.log
  13. call :LOG > %LOGFILE%
  14. @echo off
  15. rem 记录运行所需的时间
  16. set "t1=%time%"
  17. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  18. 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"
  19. @echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
  20. echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
  21. pause
  22. exit /B
  23. :LOG
  24. @echo on
  25. rem 查找exe单独创建快捷方式(小写exe)
  26. for /f %%i in ('dir /b /a:d /o:n') do (forfiles /p "%~dp0%%i" /M "*.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$"\game\%%i" @fname")
  27. rem 查找exe单独创建快捷方式(大写exe)
  28. for /f %%i in ('dir /b /a:d /o:n') do (forfiles /p "%~dp0%%i" /M "*.EXE" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$"\game\%%i" @fname")
复制代码
批量删除目录中的空格
  1. @echo off
  2. color f2
  3. :--------------------------------------
  4. setlocal enabledelayedexpansion
  5. :--------------------------------------
  6. for /f "tokens=*" %%j in ('dir/b') do (
  7. set fn=%%j
  8. echo 替换前:!fn!
  9. set fn=!fn: =!
  10. :将fn字符串中的每一个空格(" ")替换成空字符("")。
  11. ren "%%j" !fn!
  12. echo 替换后:!fn!
  13. )
  14. pause
复制代码

作者: y169168712    时间: 2023-8-13 20:00

本帖最后由 y169168712 于 2023-8-13 21:03 编辑

一次小小的改进
创建带分类目录的快捷方式,默认快捷方式位置为开始菜单
  1. @echo off
  2. rem 使用说明:
  3. rem 创建exe文件快捷方式
  4. rem 文件夹位置:x:\apps\分类目录\软件目录
  5. rem 文件夹格式:
  6. rem 格式1:快捷方式名1#程序名1
  7. rem 格式2:快捷方式名1#程序名1#快捷方式名2#程序名2
  8. rem 格式3:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3
  9. rem 格式4:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3#快捷方式名4#程序名4
  10. rem 格式5:快捷方式名@程序名
  11. rem 格式6:快捷方式名@@程序名
  12. rem 创建bat文件快捷方式
  13. rem 文件夹位置:x:\apps\分类目录\软件目录
  14. rem 文件夹格式:
  15. rem 格式7:快捷方式名$批处理名
  16. rem 格式8:快捷方式名$$批处理名
  17. rem 程序名带空格的格式:快捷方式名1#程序 名1
  18. rem 注意事项1:文件夹快捷方式名中不能出现空格,程序名中可以出现空格,如果快捷方式名中出现空格只能显示空格前的名称。
  19. rem 注意事项2:有部分软件文件夹名称中不能出现符号#需要用符号@替代。
  20. rem 注意事项3:遇到程序名重名需要修改程序名。
  21. rem 注意事项4:格式234快捷方式名不能相同。
  22. rem 按txt内容创建快捷方式(不带子目录)
  23. rem 文件夹分隔符:@@
  24. rem txt文件名称:@.txt
  25. rem txt文件位置:x:\apps\分类目录\快捷方式名1@@程序名\@.txt
  26. rem txt文件内容:快捷方式名1@程序名1 换行 快捷方式名2@程序名2 换行 快捷方式名3@程序名3  ............
  27. rem txt文件内容注意事项:快捷方式名中不能出现空格否则只显示空格前的名称,程序名中可以出现空格
  28. rem txt文件编码:ANSI
  29. rem 按txt内容创建快捷方式(带子目录)
  30. rem 文件夹分隔符:@@
  31. rem txt文件名称:@@.txt
  32. rem txt文件位置:x:\apps\分类目录\快捷方式名1@@程序名\@@.txt
  33. rem txt文件内容:快捷方式名1@程序名1 换行 快捷方式名2@程序名2 换行 快捷方式名3@程序名3  ............
  34. rem txt文件内容注意事项:快捷方式名中不能出现空格否则只显示空格前的名称,程序名中可以出现空格
  35. rem txt文件编码:ANSI
  36. rem 按txt内容创建快捷方式(不带子目录)
  37. rem 文件夹分隔符:$$
  38. rem txt文件名称:$.txt
  39. rem txt文件位置:x:\apps\分类目录\快捷方式名1$$批处理名\$.txt
  40. rem txt文件内容:快捷方式名1$批处理名1 换行 快捷方式名2$批处理名2 换行 快捷方式名3$批处理名3  ............
  41. rem txt文件内容注意事项:快捷方式名中不能出现空格否则只显示空格前的名称,程序名中可以出现空格
  42. rem txt文件编码:ANSI
  43. rem 按txt内容创建快捷方式(带子目录)
  44. rem 文件夹分隔符:$$
  45. rem txt文件名称:$$.txt
  46. rem txt文件位置:x:\apps\分类目录\快捷方式名1$$批处理名\$$.txt
  47. rem txt文件内容:快捷方式名1$批处理名1 换行 快捷方式名2$批处理名2 换行 快捷方式名3$批处理名3  ............
  48. rem txt文件内容注意事项:快捷方式名中不能出现空格否则只显示空格前的名称,程序名中可以出现空格
  49. rem txt文件编码:ANSI
  50. rem 生成快捷方式的路径,默认为开始菜单,有需要可以更改
  51. rem 生成快捷方式的路径为开始菜单:~$folder.start_menu$\apps\
  52. rem 生成快捷方式的路径为桌面:~$folder.desktop$\apps\
  53. rem 设置时间变量
  54. set "t=%time%"
  55. rem 删除开始菜单快捷方式(删除命令前面的注释::开启)
  56. ::nircmd execmd RD /s /q "~$folder.start_menu$"\apps
  57. rem 删除桌面快捷方式(删除命令前面的注释::开启)
  58. ::nircmd execmd RD /s /q "~$folder.desktop$"\apps
  59. rem 生成日志文件
  60. set LOGFILE=batch.log
  61. call :LOG > %LOGFILE%
  62. @echo off
  63. rem 记录运行所需的时间
  64. set "t1=%time%"
  65. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  66. 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"
  67. @echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
  68. echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
  69. pause
  70. exit /B
  71. :LOG
  72. @echo on
  73. rem 按文件夹名称创建快捷方式 一个exe文件 文件夹分割符:@ (有些程序路径中不能出现#号)
  74. for /f %%i in ('dir /b /a:d /o:n') do (
  75. for /f "delims=@ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  76. if exist "%~dp0%%i\%%a@%%b" forfiles /p ".\%%i\%%a@%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a"
  77. )
  78. )
  79. rem 解决空格 按文本文件(txt)内容创建快捷方式 不带子目录 文件夹分割符:@@ 文本文件名:@.txt  文本文件编码:ANSI
  80. for /f %%i in ('dir /b /a:d /o:n') do (
  81. for /f "delims=@@ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  82. if exist ".\%%i\%%a@@%%b\@.txt" for /f "delims=@ tokens=1-2" %%s in (%~dp0%%i\%%a@@%%b\@.txt) do (
  83. forfiles /p ".\%%i\%%a@@%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\ %%s")
  84. )
  85. )
  86. rem 解决空格 按文本文件(txt)内容创建快捷方式 带子目录  文件夹分割符:@@ 文本文件名:@@.txt 文本文件内容分隔符:@ 文本文件编码:ANSI
  87. for /f %%i in ('dir /b /a:d /o:n') do (
  88. for /f "delims=@@ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  89. if exist ".\%%i\%%a@@%%b\@@.txt" for /f "delims=@ tokens=1-2" %%s in (%~dp0%%i\%%a@@%%b\@@.txt) do (
  90. forfiles /p ".\%%i\%%a@@%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a %%s")
  91. )
  92. )
  93. rem 按文件夹名称创建快捷方式 一个exe文件 文件夹分割符:#
  94. for /f %%i in ('dir /b /a:d /o:n') do (
  95. for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  96. if exist "%~dp0%%i\%%a#%%b" forfiles /p ".\%%i\%%a#%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a"
  97. )
  98. )
  99. rem 按文件夹名称创建快捷方式 二个exe文件 文件夹分割符:#
  100. for /f %%i in ('dir /b /a:d /o:n') do (
  101. for /f "delims=# tokens=1-4" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  102. if exist "%~dp0%%i\%%a#%%b#%%c#%%d" forfiles /p ".\%%i\%%a#%%b#%%c#%%d" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%c"
  103. )
  104. )
  105. rem 按文件夹名称创建快捷方式 三个exe文件 文件夹分割符:#
  106. for /f %%i in ('dir /b /a:d /o:n') do (
  107. for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  108. if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f" (
  109. forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%c" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f" /M "%%f.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%e"
  110. )
  111. )
  112. )
  113. rem 按文件夹名称创建快捷方式 四个exe文件 文件夹分割符:#
  114. for /f %%i in ('dir /b /a:d /o:n') do (
  115. for /f "delims=# tokens=1-8" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  116. if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" (
  117. forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%a" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%d.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%c" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%f.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%e" & forfiles /p ".\%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" /M "%%h.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i %%g"
  118. )
  119. )
  120. )
  121. rem 按文件夹名称创建快捷方式 一个bat文件 文件夹分割符:$
  122. for /f %%i in ('dir /b /a:d /o:n') do (
  123. for /f "delims=$ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  124. if exist "%~dp0%%i\%%a$%%b" forfiles /p ".\%%i\%%a$%%b" /M "%%b.bat" /S /C "cmd /c nircmd shortcut "@path" ~$folder.start_menu$\apps\%%i %%a"
  125. )
  126. )
  127. rem 解决空格 按文本文件(txt)内容创建快捷方式 bat文件 不带子目录 文件夹分割符:$ 文本文件名:$.txt  文本文件编码:ANSI
  128. for /f %%i in ('dir /b /a:d /o:n') do (
  129. for /f "delims=$$ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  130. if exist ".\%%i\%%a$$%%b\$.txt" for /f "delims=$ tokens=1-2" %%s in (%~dp0%%i\%%a$$%%b\$.txt) do (
  131. forfiles /p ".\%%i\%%a$$%%b" /M "%%t.bat" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\ %%s"
  132. )
  133. )
  134. )
  135. rem 解决空格 按文本文件(txt)内容创建快捷方式 bat文件 带子目录 文件夹分割符:$$ 文本文件名:$$.txt  文本文件编码:ANSI
  136. for /f %%i in ('dir /b /a:d /o:n') do (
  137. for /f "delims=$$ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
  138. if exist ".\%%i\%%a$$%%b\$$.txt" for /f "delims=$ tokens=1-2" %%s in (%~dp0%%i\%%a$$%%b\$$.txt) do (
  139. forfiles /p ".\%%i\%%a$$%%b" /M "%%t.bat" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a %%s"
  140. )
  141. )
  142. )
  143. rem 创建文件夹快捷方式
  144. nircmd.exe shortcut "~$folder.start_menu$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开开始菜单"
  145. nircmd.exe shortcut "~$folder.desktop$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开桌面"
  146. nircmd.exe shortcut "~$folder.startup$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开启动"
  147. nircmd.exe shortcut "~$sys.temp$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开temp"
  148. nircmd.exe shortcut "~$folder.cookies$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开cookies"
  149. nircmd.exe shortcut "%cd%\#创建快捷方式-新版-开始菜单-稳定版(有分类目录).bat" "~$folder.start_menu$\apps\工具箱\bat工具" "创建快捷方式-新版-开始菜单-稳定版"
  150. ::nircmd.exe shortcut "%cd%\工具箱\bat工具" "~$folder.start_menu$\apps\工具箱\bat工具" "打开bat工具这个目录"
复制代码

作者: y169168712    时间: 2023-8-24 14:35

复制当前所有文件夹到apps指定目录
  1. @echo off
  2. echo 复制当前所有文件夹到apps指定目录
  3. echo 和此批处理在一起的当前文件夹里面所有的文件夹都会复制到指定分类目录
  4. echo 判断文件夹属于哪个目录然后复制到那个目录
  5. echo 1=English
  6. echo 2=工具箱
  7. echo 3=工具箱nirsoft
  8. echo 4=互联网_工具
  9. echo 5=互联网_浏览器
  10. echo 6=互联网_下载
  11. echo 7=局域网_工具
  12. echo 8=局域网_文件传输
  13. echo 9=局域网_文件共享
  14. echo 10=局域网_远程连接
  15. echo 11=文件管理
  16. echo 12=文件整理
  17. echo 13=文件转换
  18. echo 14=系统_磁盘工具
  19. echo 15=系统_工具
  20. echo 16=系统_其他系统工具
  21. echo 17=系统_启动镜像管理
  22. echo 18=系统_硬件检测
  23. echo 19=系统_增强
  24. echo 20=效率工具
  25. echo 21=应用_词典
  26. echo 22=应用_多媒体
  27. echo 23=应用_实用工具
  28. echo 24=应用_数据库管理
  29. echo 25=应用_文档处理
  30. echo 26=应用_信息管理
  31. echo 27=应用_阅读器
  32. echo 28=应用_综合
  33. echo 29=游戏工具
  34. @echo ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  35. @set lu=""
  36. @set /p lu=选择操作:
  37. if "%lu%"=="1" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\English\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\English\%%a" *.* /E)
  38. if "%lu%"=="2" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\工具箱\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\工具箱\%%a" *.* /E)
  39. if "%lu%"=="3" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\工具箱nirsoft\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\工具箱nirsoft\%%a" *.* /E)
  40. if "%lu%"=="4" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\互联网_工具\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\互联网_工具\%%a" *.* /E)
  41. if "%lu%"=="5" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\互联网_浏览器\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\互联网_浏览器\%%a" *.* /E)
  42. if "%lu%"=="6" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\互联网_下载\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\互联网_下载\%%a" *.* /E)
  43. if "%lu%"=="7" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\局域网_工具\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\局域网_工具\%%a" *.* /E)
  44. if "%lu%"=="8" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\局域网_文件传输\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\局域网_文件传输\%%a" *.* /E)
  45. if "%lu%"=="9" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\局域网_文件共享\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\局域网_文件共享\%%a" *.* /E)
  46. if "%lu%"=="10" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\局域网_远程连接\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\局域网_远程连接\%%a" *.* /E)
  47. if "%lu%"=="11" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\文件管理\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\文件管理\%%a" *.* /E)
  48. if "%lu%"=="12" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\文件整理\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\文件整理\%%a" *.* /E)
  49. if "%lu%"=="13" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\文件转换\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\文件转换\%%a" *.* /E)
  50. if "%lu%"=="14" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\系统_磁盘工具\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\系统_磁盘工具\%%a" *.* /E)
  51. if "%lu%"=="15" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\系统_工具\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\系统_工具\%%a" *.* /E)
  52. if "%lu%"=="16" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\系统_其他系统工具\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\系统_其他系统工具\%%a" *.* /E)
  53. if "%lu%"=="17" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\系统_启动镜像管理\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\系统_启动镜像管理\%%a" *.* /E)
  54. if "%lu%"=="18" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\系统_硬件检测\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\系统_硬件检测\%%a" *.* /E)
  55. if "%lu%"=="19" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\系统_增强\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\系统_增强\%%a" *.* /E)
  56. if "%lu%"=="20" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\效率工具\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\效率工具\%%a" *.* /E)
  57. if "%lu%"=="21" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\应用_词典\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\应用_词典\%%a" *.* /E)
  58. if "%lu%"=="22" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\应用_多媒体\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\应用_多媒体\%%a" *.* /E)
  59. if "%lu%"=="23" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\应用_实用工具\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\应用_实用工具\%%a" *.* /E)
  60. if "%lu%"=="24" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\应用_数据库管理\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\应用_数据库管理\%%a" *.* /E)
  61. if "%lu%"=="25" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\应用_文档处理\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\应用_文档处理\%%a" *.* /E)
  62. if "%lu%"=="26" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\应用_信息管理\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\应用_信息管理\%%a" *.* /E)
  63. if "%lu%"=="27" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\应用_阅读器\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\应用_阅读器\%%a" *.* /E)
  64. if "%lu%"=="28" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\应用_综合\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\应用_综合\%%a" *.* /E)
  65. if "%lu%"=="29" for /f %%a in ('dir /b /a:d /o:n') do (RoboCopy "%cd%\%%a" "c:\apps\游戏工具\%%a" *.* /E && RoboCopy "%cd%\%%a" "d:\apps\游戏工具\%%a" *.* /E)
  66. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2