批处理之家's Archiver

y169168712 发表于 2020-3-10 21:33

Windows下用批处理批量创建快捷方式

[i=s] 本帖最后由 y169168712 于 2020-9-12 16:16 编辑 [/i]

希望有人能把这个批处理改进一下做成三层的,或者做成PowerShell版的

要用到的命令行工具NirCmd
NirCmd.exe下载后复制到系统目录
32位系统复制到C:\Windows\System32
64位系统复制到C:\Windows\SysWOW64

NirCmd下载地址
[url]http://www.nirsoft.net/utils/nircmd-x64.zip[/url]
[url]http://www.onlinedown.net/soft/970876.htm[/url]
NirCmd 中文版帮助文档
[url]http://down.51cto.com/data/1976412[/url]



批量创建快捷方式,有分类目录

创建目录环节

首先创建好目录,下载好软件,按照下面的格式放入目录,软件必须是绿色便携(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内容为:[code]@echo off
rem 设置时间变量
set "t=%time%"

rem 删除快捷方式
::nircmd execmd RD /s /q ~$folder.desktop$\app

set LOGFILE=batch.log
call :LOG > %LOGFILE%

@echo off
rem 记录运行所需的时间
set "t1=%time%"
if "%t1:~,2%" lss "%t:~,2%" set "add=+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"
@echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
pause
exit /B

:LOG
@echo on
rem 创建快捷方式
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
forfiles /p ".\%%i\%%a#%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\%%i %%a")
)[/code]批量创建快捷方式,没有分类目录


首先创建好目录,下载好软件,按照下面的格式放入目录,软件必须是绿色便携(Portable),并且支持中文路径,如果不支持中文路径就得改为英文路径。
注意以下目录路径中不能带有空格,遇到空格必须替换成-或者其他字符,最好删除空格。#号后面的exe文件名不能重复,如果重复了需要更改为其他名称,exe应用名也要一起更改。

创建主目录:
x:\游戏

放入游戏格式如下
x:\游戏\魔兽争霸3#War3
x:\游戏\孤单枪手#AlienShooter

创建批处理x:\游戏\批量创建游戏快捷方式.bat内容为:[code]@echo off
rem 设置时间变量
set "t=%time%"

rem 删除快捷方式
::nircmd execmd RD /s /q ~$folder.desktop$\app

set LOGFILE=batch.log
call :LOG > %LOGFILE%

@echo off
rem 记录运行所需的时间
set "t1=%time%"
if "%t1:~,2%" lss "%t:~,2%" set "add=+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"
@echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
pause
exit /B

:LOG
@echo on
rem 创建快捷方式
for /f "delims=# tokens=1-2" %%a in ('dir /b /a:d /o:n') do (
forfiles /p ".\%%a#%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%a"
)[/code]运行批处理x:\游戏\批量创建游戏快捷方式.bat会在桌面生成“app\app”文件夹以及快捷方式图标。

Batcher 发表于 2020-9-1 18:38

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=227136&ptid=55042]1#[/url] [i]y169168712[/i] [/b]


    是否考虑一下代码里面哪些地方限制了它不支持带空格的路径?在合适的地方加上双引号是否可以解决这个问题呢

y169168712 发表于 2020-9-12 16:37

[i=s] 本帖最后由 y169168712 于 2020-9-12 16:48 编辑 [/i]

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=232020&ptid=55042]2#[/url] [i]Batcher[/i] [/b]


    加了两组双引号,#号后面和应用exe可以出现空格,#号前面和分类文件夹暂时没办法解决

y169168712 发表于 2020-10-20 13:19

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

[b]拷贝nircmd到系统目录[/b][code]%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d %~dp0
copy nircmd.exe %WINDIR%\System32
copy nircmd.exe %WINDIR%\SysWOW64
pause[/code][b]创建带分类目录的快捷方式,默认快捷方式位置为开始菜单[/b][code]
@echo off
rem 使用说明:
rem 1.文件夹快捷方式名中不能出现空格,程序名中可以出现空格,如果快捷方式名中出现空格只能显示空格前的名称。
rem 2.文件夹格式:
rem 格式1:快捷方式名1#程序名1
rem 格式2:快捷方式名1#程序名1#快捷方式名2#程序名2
rem 格式3:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3
rem 格式4:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3#快捷方式名4#程序名4
rem 程序名带空格的格式:快捷方式名1#程 序 名1

rem 按txt内容创建快捷方式
rem txt名称:快捷方式名1#程序名.txt
rem txt位置:分类目录\快捷方式名1#程序名\快捷方式名1#程序名.txt
rem txt内容:快捷方式名1#程序名1 换行 快捷方式名2#程序名2 换行 快捷方式名3#程序名3  ............

rem 设置时间变量
set "t=%time%"

rem 删除开始菜单快捷方式
nircmd execmd RD /s /q "~$folder.start_menu$"\apps

set LOGFILE=batch.log
call :LOG > %LOGFILE%

@echo off
rem 记录运行所需的时间
set "t1=%time%"
if "%t1:~,2%" lss "%t:~,2%" set "add=+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"
@echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
pause
exit /B

:LOG
@echo on
rem 按文件夹名称 创建快捷方式 一个文件
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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"
)
)

rem 按文件夹名称 创建快捷方式 二个文件
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-4" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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"
)
)

rem 按文件夹名称 创建快捷方式 三个文件
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f" (
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"
)
)
)

rem 按文件夹名称 创建快捷方式 四个文件
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-8" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" (
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"
)
)
)

rem 按txt内容 创建快捷方式 目录名一个文件
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist ".\%%i\%%a#%%b\%%a#%%b.txt" for /f "delims=# tokens=1-2" %%s in (%~dp0%%i\%%a#%%b\%%a#%%b.txt) do (
forfiles /p ".\%%i\%%a#%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a#%%b %%s")
)
)

rem 按txt内容 创建快捷方式 目录名二个文件
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-4" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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 (
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")
)
)

rem 按txt内容 创建快捷方式 目录名三个文件
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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 (
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")
)
)

rem 按txt内容 创建快捷方式 目录名四个文件
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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 (
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")
)
)

[/code][b]创建单独的快捷方式,快捷方式位置为桌面[/b][code]
@echo off
rem 使用说明:
rem 1.文件夹快捷方式名中不能出现空格,程序名中可以出现空格,如果快捷方式名中出现空格只能显示空格前的名称。
rem 2.文件夹格式:
rem 格式1:快捷方式名1#程序名1
rem 格式2:快捷方式名1#程序名1#快捷方式名2#程序名2
rem 格式3:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3
rem 格式4:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3#快捷方式名4#程序名4
rem 程序名带空格的格式:快捷方式名1#程 序 名1

rem 按txt内容创建快捷方式
rem txt名称:快捷方式名1#程序名.txt
rem txt位置:分类目录\快捷方式名1#程序名\快捷方式名1#程序名.txt
rem txt内容:快捷方式名1#程序名1 换行 快捷方式名2#程序名2 换行 快捷方式名3#程序名3  ............

rem 设置时间变量
set "t=%time%"

rem 删除快捷方式
::nircmd execmd RD /s /q ~$folder.desktop$\app

set LOGFILE=batch.log
call :LOG > %LOGFILE%

@echo off
rem 记录运行所需的时间
set "t1=%time%"
if "%t1:~,2%" lss "%t:~,2%" set "add=+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"
@echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
pause
exit /B

:LOG
@echo on
rem 创建快捷方式 第一个
for /f "delims=# tokens=1-2" %%a in ('dir /b /a:d /o:n') do (
if exist ".\%%a#%%b" forfiles /p ".\%%a#%%b" /M "%%b.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%a"
)

rem 创建快捷方式 第二个
for /f "delims=# tokens=1-4" %%a in ('dir /b /a:d /o:n') do (
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"
)

rem 创建快捷方式 第三个
for /f "delims=# tokens=1-6" %%a in ('dir /b /a:d /o:n') do (
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"
)

rem 创建快捷方式 第四个
for /f "delims=# tokens=1-8" %%a in ('dir /b /a:d /o:n') do (
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"
)


rem 按txt内容 创建快捷方式
for /f "delims=# tokens=1-2" %%a in ('dir /b /a:d /o:n') do (
if exist ".\%%a#%%b\%%a#%%b.txt" for /f "delims=# tokens=1-2" %%x in (%~dp0%%a#%%b\%%a#%%b.txt) do (
forfiles /p ".\%%a#%%b" /M "%%y.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app\app %%x")
)
)
[/code]

y169168712 发表于 2021-1-21 16:14

[i=s] 本帖最后由 y169168712 于 2021-4-21 16:42 编辑 [/i]

一次小小的改进
[b]创建带分类目录的快捷方式,默认快捷方式位置为开始菜单[/b][code]@echo off
rem 使用说明:

rem 按文件夹名称 创建快捷方式
rem 文件夹格式:
rem 格式1:快捷方式名1#程序名1
rem 格式2:快捷方式名1#程序名1#快捷方式名2#程序名2
rem 格式3:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3
rem 格式4:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3#快捷方式名4#程序名4
rem 程序名带空格的格式:快捷方式名1#程序 名1
rem 注意事项:文件夹快捷方式名中不能出现空格,程序名中可以出现空格,如果快捷方式名中出现空格只能显示空格前的名称。

rem 按txt内容创建快捷方式(不带子目录)
rem txt文件名称:##.txt
rem txt文件位置:分类目录\快捷方式名1##程序名\##.txt
rem txt文件内容:快捷方式名1#程序名1 换行 快捷方式名2#程序名2 换行 快捷方式名3#程序名3  ............
rem txt文件内容注意事项:快捷方式名中不能出现空格,程序名中可以出现空格
rem txt文件编码:ANSI

rem 按txt内容创建快捷方式(带子目录)
rem txt文件名称:###.txt
rem txt文件位置:分类目录\快捷方式名1##程序名\###.txt
rem txt文件内容:快捷方式名1#程序名1 换行 快捷方式名2#程序名2 换行 快捷方式名3#程序名3  ............
rem txt文件内容注意事项:快捷方式名中不能出现空格,程序名中可以出现空格
rem txt文件编码:ANSI

rem 生成快捷方式的路径,默认为开始菜单,有需要可以更改
rem 生成快捷方式的路径为开始菜单:~$folder.start_menu$\apps\
rem 生成快捷方式的路径为桌面:~$folder.desktop$\apps\

rem 设置时间变量
set "t=%time%"

rem 删除开始菜单快捷方式(删除命令前面的注释::开启)
::nircmd execmd RD /s /q "~$folder.start_menu$"\apps
rem 删除桌面快捷方式(删除命令前面的注释::开启)
::nircmd execmd RD /s /q "~$folder.desktop$"\apps

rem 生成日志文件
set LOGFILE=batch.log
call :LOG > %LOGFILE%

@echo off
rem 记录运行所需的时间
set "t1=%time%"
if "%t1:~,2%" lss "%t:~,2%" set "add=+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"
@echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
pause
exit /B

:LOG
@echo on
rem 按文件夹名称创建快捷方式 一个exe文件 文件夹分割符:@ (有些程序路径中不能出现#号)
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=@ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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"
)
)

rem 按文件夹名称创建快捷方式 一个exe文件 文件分割符:#
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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"
)
)

rem 按文件夹名称创建快捷方式 二个exe文件 文件分割符:#
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-4" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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"
)
)

rem 按文件夹名称创建快捷方式 三个exe文件 文件分割符:#
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f" (
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"
)
)
)

rem 按文件夹名称创建快捷方式 四个exe文件 文件分割符:#
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-8" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" (
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"
)
)
)

rem 按文本文件(txt)内容创建快捷方式 不带子目录  文件分割符:## 文本文件名:##.txt
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=## tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist ".\%%i\%%a##%%b\##.txt" for /f "delims=## tokens=1-2" %%s in (%~dp0%%i\%%a##%%b\##.txt) do (
forfiles /p ".\%%i\%%a##%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\ %%s")
)
)

rem 按文本文件(txt)内容创建快捷方式 带子目录  文件分割符:## 文本文件名:###.txt
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=## tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist ".\%%i\%%a##%%b\###.txt" for /f "delims=## tokens=1-2" %%s in (%~dp0%%i\%%a##%%b\###.txt) do (
forfiles /p ".\%%i\%%a##%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a %%s")
)
)
[/code][b]创建单独的快捷方式,快捷方式位置为开始菜单[/b]
可以不修改目录名创建快捷方式,缺点是目录名中不能出现空格,可以使用批量重命名软件删除目录中的空格[code]@echo off
rem 使用说明:

rem 生成快捷方式的路径,默认为开始菜单,有需要可以更改
rem 生成快捷方式的路径为开始菜单:~$folder.start_menu$\game\
rem 生成快捷方式的路径为桌面:~$folder.desktop$\game\

rem 设置时间变量
set "t=%time%"

rem 删除开始菜单快捷方式(删除命令前面的注释::开启)
nircmd execmd RD /s /q "~$folder.start_menu$"\game
rem 删除桌面快捷方式(删除命令前面的注释::开启)
::nircmd execmd RD /s /q "~$folder.desktop$"\game

set LOGFILE=batch.log
call :LOG > %LOGFILE%

@echo off
rem 记录运行所需的时间
set "t1=%time%"
if "%t1:~,2%" lss "%t:~,2%" set "add=+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"
@echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
pause
exit /B

:LOG
@echo on
rem 查找exe单独创建快捷方式(小写exe)
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")
rem 查找exe单独创建快捷方式(大写exe)
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")
[/code][b]批量删除目录中的空格[/b][code]@echo off
color f2
:--------------------------------------
setlocal enabledelayedexpansion
:--------------------------------------
for /f "tokens=*" %%j in ('dir/b') do (
set fn=%%j
echo 替换前:!fn!
set fn=!fn: =!
:将fn字符串中的每一个空格(" ")替换成空字符("")。
ren "%%j" !fn!
echo 替换后:!fn!
)
pause[/code]

y169168712 发表于 2023-8-13 20:00

[i=s] 本帖最后由 y169168712 于 2023-8-13 21:03 编辑 [/i]

一次小小的改进
创建带分类目录的快捷方式,默认快捷方式位置为开始菜单[code]@echo off
rem 使用说明:

rem 创建exe文件快捷方式
rem 文件夹位置:x:\apps\分类目录\软件目录
rem 文件夹格式:
rem 格式1:快捷方式名1#程序名1
rem 格式2:快捷方式名1#程序名1#快捷方式名2#程序名2
rem 格式3:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3
rem 格式4:快捷方式名1#程序名1#快捷方式名2#程序名2#快捷方式名3#程序名3#快捷方式名4#程序名4
rem 格式5:快捷方式名@程序名
rem 格式6:快捷方式名@@程序名

rem 创建bat文件快捷方式
rem 文件夹位置:x:\apps\分类目录\软件目录
rem 文件夹格式:
rem 格式7:快捷方式名$批处理名
rem 格式8:快捷方式名$$批处理名

rem 程序名带空格的格式:快捷方式名1#程序 名1
rem 注意事项1:文件夹快捷方式名中不能出现空格,程序名中可以出现空格,如果快捷方式名中出现空格只能显示空格前的名称。
rem 注意事项2:有部分软件文件夹名称中不能出现符号#需要用符号@替代。
rem 注意事项3:遇到程序名重名需要修改程序名。
rem 注意事项4:格式234快捷方式名不能相同。

rem 按txt内容创建快捷方式(不带子目录)
rem 文件夹分隔符:@@
rem txt文件名称:@.txt
rem txt文件位置:x:\apps\分类目录\快捷方式名1@@程序名\@.txt
rem txt文件内容:快捷方式名1@程序名1 换行 快捷方式名2@程序名2 换行 快捷方式名3@程序名3  ............
rem txt文件内容注意事项:快捷方式名中不能出现空格否则只显示空格前的名称,程序名中可以出现空格
rem txt文件编码:ANSI

rem 按txt内容创建快捷方式(带子目录)
rem 文件夹分隔符:@@
rem txt文件名称:@@.txt
rem txt文件位置:x:\apps\分类目录\快捷方式名1@@程序名\@@.txt
rem txt文件内容:快捷方式名1@程序名1 换行 快捷方式名2@程序名2 换行 快捷方式名3@程序名3  ............
rem txt文件内容注意事项:快捷方式名中不能出现空格否则只显示空格前的名称,程序名中可以出现空格
rem txt文件编码:ANSI

rem 按txt内容创建快捷方式(不带子目录)
rem 文件夹分隔符:$$
rem txt文件名称:$.txt
rem txt文件位置:x:\apps\分类目录\快捷方式名1$$批处理名\$.txt
rem txt文件内容:快捷方式名1$批处理名1 换行 快捷方式名2$批处理名2 换行 快捷方式名3$批处理名3  ............
rem txt文件内容注意事项:快捷方式名中不能出现空格否则只显示空格前的名称,程序名中可以出现空格
rem txt文件编码:ANSI

rem 按txt内容创建快捷方式(带子目录)
rem 文件夹分隔符:$$
rem txt文件名称:$$.txt
rem txt文件位置:x:\apps\分类目录\快捷方式名1$$批处理名\$$.txt
rem txt文件内容:快捷方式名1$批处理名1 换行 快捷方式名2$批处理名2 换行 快捷方式名3$批处理名3  ............
rem txt文件内容注意事项:快捷方式名中不能出现空格否则只显示空格前的名称,程序名中可以出现空格
rem txt文件编码:ANSI

rem 生成快捷方式的路径,默认为开始菜单,有需要可以更改
rem 生成快捷方式的路径为开始菜单:~$folder.start_menu$\apps\
rem 生成快捷方式的路径为桌面:~$folder.desktop$\apps\

rem 设置时间变量
set "t=%time%"

rem 删除开始菜单快捷方式(删除命令前面的注释::开启)
::nircmd execmd RD /s /q "~$folder.start_menu$"\apps
rem 删除桌面快捷方式(删除命令前面的注释::开启)
::nircmd execmd RD /s /q "~$folder.desktop$"\apps

rem 生成日志文件
set LOGFILE=batch.log
call :LOG > %LOGFILE%

@echo off
rem 记录运行所需的时间
set "t1=%time%"
if "%t1:~,2%" lss "%t:~,2%" set "add=+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"
@echo ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
echo 本次批处理运行时间为%hh%小时:%mm%分钟:%ss%.%ms%秒  生成日志文件batch.log
pause
exit /B

:LOG
@echo on
rem 按文件夹名称创建快捷方式 一个exe文件 文件夹分割符:@ (有些程序路径中不能出现#号)
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=@ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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"
)
)

rem 解决空格 按文本文件(txt)内容创建快捷方式 不带子目录 文件夹分割符:@@ 文本文件名:@.txt  文本文件编码:ANSI
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=@@ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist ".\%%i\%%a@@%%b\@.txt" for /f "delims=@ tokens=1-2" %%s in (%~dp0%%i\%%a@@%%b\@.txt) do (
forfiles /p ".\%%i\%%a@@%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\ %%s")
)
)

rem 解决空格 按文本文件(txt)内容创建快捷方式 带子目录  文件夹分割符:@@ 文本文件名:@@.txt 文本文件内容分隔符:@ 文本文件编码:ANSI
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=@@ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist ".\%%i\%%a@@%%b\@@.txt" for /f "delims=@ tokens=1-2" %%s in (%~dp0%%i\%%a@@%%b\@@.txt) do (
forfiles /p ".\%%i\%%a@@%%b" /M "%%t.exe" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a %%s")
)
)

rem 按文件夹名称创建快捷方式 一个exe文件 文件夹分割符:#
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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"
)
)

rem 按文件夹名称创建快捷方式 二个exe文件 文件夹分割符:#
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-4" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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"
)
)

rem 按文件夹名称创建快捷方式 三个exe文件 文件夹分割符:#
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-6" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f" (
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"
)
)
)

rem 按文件夹名称创建快捷方式 四个exe文件 文件夹分割符:#
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=# tokens=1-8" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist "%~dp0%%i\%%a#%%b#%%c#%%d#%%e#%%f#%%g#%%h" (
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"
)
)
)

rem 按文件夹名称创建快捷方式 一个bat文件 文件夹分割符:$
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=$ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
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"
)
)

rem 解决空格 按文本文件(txt)内容创建快捷方式 bat文件 不带子目录 文件夹分割符:$ 文本文件名:$.txt  文本文件编码:ANSI
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=$$ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist ".\%%i\%%a$$%%b\$.txt" for /f "delims=$ tokens=1-2" %%s in (%~dp0%%i\%%a$$%%b\$.txt) do (
forfiles /p ".\%%i\%%a$$%%b" /M "%%t.bat" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\ %%s"
)
)
)

rem 解决空格 按文本文件(txt)内容创建快捷方式 bat文件 带子目录 文件夹分割符:$$ 文本文件名:$$.txt  文本文件编码:ANSI
for /f %%i in ('dir /b /a:d /o:n') do (
for /f "delims=$$ tokens=1-2" %%a in ('dir %~dp0%%i /b /a:d /o:n') do (
if exist ".\%%i\%%a$$%%b\$$.txt" for /f "delims=$ tokens=1-2" %%s in (%~dp0%%i\%%a$$%%b\$$.txt) do (
forfiles /p ".\%%i\%%a$$%%b" /M "%%t.bat" /S /C "cmd /c nircmd shortcut @path ~$folder.start_menu$\apps\%%i\%%a %%s"
)
)
)

rem 创建文件夹快捷方式
nircmd.exe shortcut "~$folder.start_menu$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开开始菜单"
nircmd.exe shortcut "~$folder.desktop$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开桌面"
nircmd.exe shortcut "~$folder.startup$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开启动"
nircmd.exe shortcut "~$sys.temp$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开temp"
nircmd.exe shortcut "~$folder.cookies$" "~$folder.start_menu$\apps\工具箱\bat工具" "打开cookies"
nircmd.exe shortcut "%cd%\#创建快捷方式-新版-开始菜单-稳定版(有分类目录).bat" "~$folder.start_menu$\apps\工具箱\bat工具" "创建快捷方式-新版-开始菜单-稳定版"

::nircmd.exe shortcut "%cd%\工具箱\bat工具" "~$folder.start_menu$\apps\工具箱\bat工具" "打开bat工具这个目录"


[/code]

y169168712 发表于 2023-8-24 14:35

复制当前所有文件夹到apps指定目录[code]@echo off
echo 复制当前所有文件夹到apps指定目录
echo 和此批处理在一起的当前文件夹里面所有的文件夹都会复制到指定分类目录
echo 判断文件夹属于哪个目录然后复制到那个目录
echo 1=English
echo 2=工具箱
echo 3=工具箱nirsoft
echo 4=互联网_工具
echo 5=互联网_浏览器
echo 6=互联网_下载
echo 7=局域网_工具
echo 8=局域网_文件传输
echo 9=局域网_文件共享
echo 10=局域网_远程连接
echo 11=文件管理
echo 12=文件整理
echo 13=文件转换
echo 14=系统_磁盘工具
echo 15=系统_工具
echo 16=系统_其他系统工具
echo 17=系统_启动镜像管理
echo 18=系统_硬件检测
echo 19=系统_增强
echo 20=效率工具
echo 21=应用_词典
echo 22=应用_多媒体
echo 23=应用_实用工具
echo 24=应用_数据库管理
echo 25=应用_文档处理
echo 26=应用_信息管理
echo 27=应用_阅读器
echo 28=应用_综合
echo 29=游戏工具
@echo ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
@set lu=""
@set /p lu=选择操作:
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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)
pause[/code]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.