建设网站之前都需要准备什么问题,平面设计培训课程培训,wordpress前台在线编辑器,字体不显示 wordpress一 概述 在看《从小工到专家-程序员修炼之道》时#xff0c;看到建议使用Shell#xff0c;很有感触。在很多时候#xff0c;通过键盘操作#xff0c;比鼠标的确会块很多#xff0c;如果能用好shell命令#xff08;或批处理命令#xff09; #xff0c;的确能节省我们…一 概述 在看《从小工到专家-程序员修炼之道》时看到建议使用Shell很有感触。在很多时候通过键盘操作比鼠标的确会块很多如果能用好shell命令或批处理命令 的确能节省我们很多的时候特别是许多经常重复的工作。例如打开浏览器进入csdncnblogs等感兴趣网站这样的工作很多人会一天会重复许多次每次重复这样的过程单调且浪费不少时间积少成多浪费的时间很可观其实可以使用命令行中“浏览器.exe 参数”的方式轻松的实现对兴趣网站的访问。其他的常用操作还有很多例如“打开远程连接”“通过VS2010打开自己最近在工作的项目”“打开服务程序”“打开常用文件夹”使用自己常用的工具。 二 问题 如果都使用shell命令或批处理命令通过键盘进行这些操作肯定会快的多。但是这些命令复杂而且不容易记住怎么办 我简单的列举了一下使用命令会遇到的问题并在后面一 一进行解决。 1 如何方便的打开命令行工具如何轻松的实现输入命令 2 Shell命令或批处理命令这么复杂不容易记住。 3 执行一个命令要输入太多代码不比直接代开快。 4 是否可以很轻松的添加自己的命令 三 使用场景 根据自己的理解我通过批处理实现了一个使用命令行快速执行命令的程序。 我的程序叫XBAT在开机时自动运行。XBAT的界面为一个可见的文本框位于左面的右上角占据很小的位置见下图红色标出部分。 使用场景 1 用户想用浏览器打开百度网站时同时按下“Win Z”键XBAT文本框获得焦点 2 用户输入“bd”按下Enter键。 3 浏览器打开百度站点。 现在这个程序我自己用起来得心应手没有这个程序我感觉很不方便。 我现在常用的是用它来打开iis打开“服务”打开“DEPENDS.EXE”打开自己常用的文件夹常用的sln打开命令行打开常用站点常用文件夹。 四 实现 使用就是这样简单。 实现也不复杂。 1XBAT中捕获“Win Z”快捷键不管你在干什么知道按下这组快捷键就会将焦点设置到XBAT的文本框中。MFC的实现代码为 static const long g_HotKeyCMD WM_USER 1; ::RegisterHotKey(this-m_hWnd, ::g_HotKeyCMD, MOD_WIN, Z); BEGIN_MESSAGE_MAP(CXBATDlg, CDialog)
ON_MESSAGE(WM_HOTKEY, OnHotKay)
...
END_MESSAGE_MAP() LRESULT CXBATDlg::OnHotKay(WPARAM wParam, LPARAM pParam)
{if (wParam ::g_HotKeyCMD){// ...return 0;}//...return 0;
} 2 用户输入命令按下Enter键后XBAT会以用户输入命令为参数调用一个批处理run.bat BOOL CXBATDlg::PreTranslateMessage(MSG* pMsg)
{this-UpdateData();if(pMsg-wParam VK_RETURN){static CString batPath ;if (batPath ){CString strAppPath;CXBATDlg::GetAppPath(strAppPath);batPath strAppPath MyBAT\\run.bat;}::ShellExecute(this-m_hWnd, open, batPath, this-m_CMD.GetBuffer(), NULL, SW_HIDE);this-m_CMD ;this-UpdateData(FALSE);return true; }return CDialog::PreTranslateMessage(pMsg);
} 代码中的m_CMD为空户输入的命令 3 run.bat的工作原理 run.bat会根据用户输入的bd知道是要访问百度网站就找到浏览器的exe文件以百度地址为参数调用浏览器命令实现打开网站的操作。 if %1bd (start /max C:\...\360se.exe www.baidu.com
) 4 对run.bat进行重构 1 我们需要打开的站点有很多所以需要将打开浏览器的代码抽象出来我的做法是把这些批处理放置到单独的文件“openurl.bat”中。 代码成了 if %1bd (
call openurl www.baidu.com
) 2 将要打开的网站和类似的“bd”命令放置到一个文件中单独配置这个文件叫“store.txt”。 除了能打开网站以外还需要能打开一些exe文件打开文件夹打开VS的sln。也就是说要针对多种操作类型需要对操作类型进行定义 s 打开sln使用vs2010提供一个opensln.bat批处理里面代码 start C:\...\VSLauncher.exe %1 u 打开网站使用浏览器使用openurl批处理里面就一行代码 start /max C:\...\360se.exe %1 o 对象文件直接执行提供一个openexe.bat批处理里面就一行代码 start %1 f 打开文件夹提供一个openfolder.bat批处理里面就一行代码 start %1 后来有添加了打开pdf什么的。 run.bat的批处理就需要修改为 set found0
echo offsetlocal enabledelayedexpansion
for /f tokens1,2,3 delims %%i in (store.txt) do (if %%i%1 ( set p%%jset p1!p:#p#%path%!set p2!p1:#f#%folder%!set p3!p2:#s#%SystemRoot%!if %%ks (call opensln !p3!)if %%kf (call openfolder !p3!)if %%ku (call openurl !p3!)if %%ko (call openexe !p3!)echo 找到选项 %%kset found1)
) store.txt的内容如下 kfgj E:\开发工具 f
gjrj E:\工具软件 f
dzs E:\电子书 f
bd www.baidu.com u
cbs http://www.cnblogs.com u
csdn www.csdn.net u
a http://localhost/admin u
h http://localhost/ u
126 www.126.com u
wk http://wenku.baidu.com u
rz F:\.../...xls o
ss F:\...\.....sln s 说到这儿就有一个我头疼的问题在store.txt中我无法在诸如“:\开发工具”中包含空格不知道有没有人知道怎么处理 在run.bat中还有一些操作不能包括在这几种操作中只好单独处理了特别是带参数的。javascript中有REPL不知道批处理中是否也可以这样如果可以就能防止在store.txt中了 if %found%1 (goto start
)
if %1iisreset (start iisresetgoto start
)
if %1iis (start C:\WINDOWS\system32\inetsrv\iis.mscgoto start
)
if %1fw (start %SystemRoot%\system32\services.msc /sgoto start
)
if %1yc (start %SystemRoot%\system32\mstsc.exegoto start
)
if %1jsq (start %SystemRoot%\system32\calc.exegoto start
) 五 结束 除了这些功能外我还添加了按“winC”打开“store.txt”文件按“WinV”打开XBAT的文件夹。 XBAT的不足有 1 虽然软件界面很小但是还是存在而且是在界面的顶层特别是播放视频的时候看着不舒服。 2 在store的文件夹等路径中不能包含空格。 3 有时候会被360认为有危险。 4 添加新的命令不方便需要打开store.txt自己动手添加 5 暂时XBAT只接受简单的指令无法输入带参数的指令例如查找文件等 源代码下载地址 http://download.csdn.net/detail/xumingxsh/7801215 Release版下载地址 http://download.csdn.net/detail/xumingxsh/7801733转载于:https://www.cnblogs.com/Rong-/p/3929791.html