解决同一个文件夹创建多个快捷方式,使用文件目录名加文本文件两种参数形式,文件目录名支持4个应用,如果需要支持更多可以添加文本文件
拷贝nircmd到系统目录- %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
复制代码 创建带分类目录的快捷方式,默认快捷方式位置为开始菜单- @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")
- )
- )
复制代码 创建单独的快捷方式,快捷方式位置为桌面- @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")
- )
- )
复制代码
|