首页 > 其他分享 >实用的bat脚本

实用的bat脚本

时间:2024-04-17 13:11:18浏览次数:27  
标签:脚本 bat set extension% else 实用 file path open

众所周知只要把bat脚本路径加入环境变量就可以在任意shell以命令的形式使用脚本。 为此我创建了一个文件夹专门用来存放自定义的bat脚本,然后将该文件夹的路径加入环境变量。 于是便可以使用win+R的方式快捷使用命令。部分脚本如下

mdr.bat


@echo off  
setlocal enabledelayedexpansion
:: 检查参数数量
if "%~1"=="" (
echo 请提供一个完整的文件路径作为参数。
exit /b 1
)
:: 获取文件路径和文件名  
set "full\_path=%~1"  
for %%i in ("%full\_path%") do set "folder\_path=%%~dpi" & set "file\_name=%%~nxi"

:: 创建文件夹  
if not exist "!folder\_path!" mkdir "!folder\_path!"

:: 在文件夹内创建文件  
set "file\_path=!folder\_path!!file\_name!"  
if not exist "!file\_path!" type nul > "!file\_path!"

echo File created successfully!  
endlocal

该脚本作用为一步创建文件夹和文件,如

mdr ./dir/text.txt

在当前目录创建dir文件夹,然后在文件夹内创建text.txt文件

new.bat

@echo off  
setlocal enabledelayedexpansion

:: 设置 VS Code 的路径  
set "vscode\_path=E:\\APP\\Microsoft VS Code\\Code.exe"

:: 初始化变量  
set "use\_vscode=0"  
set "create\_only=0"  
set "create\_on\_desktop=1"  
set "file\_to\_create="

:: 获取完整的文件名和扩展名  
set "file\_extension=%~x1"  
set "file\_name=%~n1"

:: 解析命令行参数  
:parse\_args  
if /i "%~1"=="" goto :end\_parse\_args  
if /i "%~1"=="-vs" (  
set "use\_vscode=1"  
shift /1  
goto :parse\_args  
)  
if /i "%~1"=="-no" (  
set "create\_only=1"  
shift /1  
goto :parse\_args  
)  
if /i "%~1"=="-d" (  
set "create\_on\_desktop=0"  
shift /1  
goto :parse\_args  
)  
set "file\_to\_create=%~1"  
shift /1  
goto :parse\_args

:end\_parse\_args

:: 检查文件名参数是否提供  
if "%file\_to\_create%"=="" (  
echo Usage: %~nx0 ^<filename\_with\_extension^> \[-vs\] \[-no\] \[-d\]  
exit /b 1  
)

:: 获取完整的文件名和扩展名  
set "full\_file\_name=%file\_to\_create%"

:: 设置创建文件的路径  
if %create\_on\_desktop%==1 (  
set "create\_path=%USERPROFILE%\\Desktop"  
) else (  
set "create\_path=."  
)

:: 构造完整的文件路径  
set "full\_path\_file\_name=%create\_path%\\%full\_file\_name%"

:: 如果文件不存在,则创建它  
if not exist "!full\_path\_file\_name!" (  
for %%i in ("%full\_path\_file\_name%") do set "folder\_path=%%~dpi" & set "file\_name=%%~nxi"

:: 创建文件夹  
if not exist "!folder_path!" mkdir "!folder_path!"  

:: 在文件夹内创建文件  
set "file_path=!folder_path!\!file_name!"  
if not exist "!file_path!" type nul > "!file_path!"  
)

:: 检查是否只需要创建文件而不打开  
if %create\_only%==1 (  
echo File created but not opened as requested.  
exit /b 0  
)

:: 根据参数决定是否使用 VS Code 打开文件  
if %use\_vscode%==1 (  
start "" "!vscode\_path!" "!full\_path\_file\_name!"  
) else (  
:: 根据文件后缀选择打开软件,或者默认使用 VS Code(这部分可以根据需要添加更多软件路径)  
set "open\_with="  
if /i "%file\_extension%"==".pdf" (  
set "open\_with=<your\_specific\_software\_path\_for\_pdf>"  
) else if /i "%file\_extension%"==".docx" (  
set "open\_with=C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE"  
) else if /i "%file\_extension%"==".xlsx" (  
set "open\_with=C:\\Program Files\\Microsoft Office\\root\\Office16\\EXCEL.EXE"  
) else if /i "%file\_extension%"==".pptx" (  
set "open\_with=C:\\Program Files\\Microsoft Office\\root\\Office16\\POWERPNT.EXE"  
) else if /i "%file\_extension%"==".doc" (  
set "open\_with=C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE"  
) else if /i "%file\_extension%"==".xls" (  
set "open\_with=C:\\Program Files\\Microsoft Office\\root\\Office16\\EXCEL.EXE"  
) else if /i "%file\_extension%"==".txt" (  
set "open\_with=C:\\Windows\\notepad.exe"  
) else if /i "%file\_extension%"==".c" (  
set "open\_with=E:\\APP\\VC6.0\\Common\\MSDev98\\Bin\\MSDEV.EXE"  
) else if /i "%file\_extension%"==".cpp" (  
set "open\_with=E:\\APP\\VC6.0\\Common\\MSDev98\\Bin\\MSDEV.EXE"  
) else if /i "%file\_extension%"==".r" (  
set "open\_with=E:\\APP\\RStudio\\rstudio.exe"  
) else if /i "%file\_extension%"==".R" (  
set "open\_with=E:\\APP\\RStudio\\rstudio.exe"  
)

:: 如果没有指定软件,则使用 VS Code  
if "!open_with!"=="" (  
    set "open_with=!vscode_path!"  
)  

:: 打开文件  
start "" "!open_with!" "!full_path_file_name!"
exit /b 0  
)

endlocal

该脚本作用是在桌面创建文件和文件夹,并自动使用设定 好的软件打开。使用方法

new dir/text.txt \[-d\]\[-vs\]\[-no\]

-d:改为当前目录下创建,通常用于打开文件夹后在控制台使用
-vs:使用vscode打开,不论是什么后缀的文件
-no:只创建不打开,作用同mdr命令

bing.bat

explorer "[https://cn.bing.com/search?q=%1"](https://cn.bing.com/search?q=%1&quot);

作用为使用bing搜索特定内容,也可以把后面改成其他的网址实现快捷打开网页

re.bat 立刻重启

shutdown -r -t 0

sd.bat 指定时间后关机(秒)

shutdown -s -t %1

标签:脚本,bat,set,extension%,else,实用,file,path,open
From: https://www.cnblogs.com/kabaiye/p/18140377

相关文章

  • Python-GPU-编程实用指南(一)
    PythonGPU编程实用指南(一)原文:zh.annas-archive.org/md5/ef7eb3c148e0cfdfe01c331f2f01557c译者:飞龙协议:CCBY-NC-SA4.0前言问候和祝福!本文是关于使用Python和CUDA进行GPU编程的入门指南。GPU可能代表图形编程单元,但我们应该明确,这本书不是关于图形编程——它本质......
  • Python-GPU-编程实用指南(三)
    PythonGPU编程实用指南(三)原文:zh.annas-archive.org/md5/ef7eb3c148e0cfdfe01c331f2f01557c译者:飞龙协议:CCBY-NC-SA4.0第十章:使用已编译的GPU代码在本书的过程中,我们通常依赖PyCUDA库自动为我们接口我们的内联CUDA-C代码,使用即时编译和与Python代码的链接。然而......
  • Python-企业自动化实用指南(四)
    Python企业自动化实用指南(四)原文:zh.annas-archive.org/md5/0bfb2f4dbc80a06d99550674abb53d0d译者:飞龙协议:CCBY-NC-SA4.0第十八章:使用Python构建网络扫描器在本章中,我们将构建一个网络扫描器,它可以识别网络上的活动主机,并且我们还将扩展它以包括猜测每个主机上正在运......
  • Python 数据结构和算法实用指南(三)
    原文:zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d译者:飞龙协议:CCBY-NC-SA4.0第七章:哈希和符号表我们之前已经看过数组和列表,其中项目按顺序存储并通过索引号访问。索引号对计算机来说很有效。它们是整数,因此快速且易于操作。但是,它们并不总是对我们很有效......
  • Python 数据结构和算法实用指南(一)
    原文:zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d译者:飞龙协议:CCBY-NC-SA4.0前言数据结构和算法是信息技术和计算机科学工程学习中最重要的核心学科之一。本书旨在提供数据结构和算法的深入知识,以及编程实现经验。它专为初学者和中级水平的研究Python编......
  • Python 数据结构和算法实用指南(二)
    原文:zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d译者:飞龙协议:CCBY-NC-SA4.0第四章:列表和指针结构我们已经在Python中讨论了列表,它们方便而强大。通常情况下,我们使用Python内置的列表实现来存储任何数据。然而,在本章中,我们将了解列表的工作原理,并将研......
  • C:\Windows\System32\spool 目录中,这个目录是与打印相关的系统服务的默认位置。 Pr
    C:\Windows\System32\spool目录中,这个目录是与打印相关的系统服务的默认位置。作用:drivers:这个文件夹包含了打印机驱动程序文件。Windows系统使用这些驱动程序来与不同类型和品牌的打印机进行通信。PRINTERS:这个文件夹通常用于存储正在打印的文档的临时文件。当......
  • mybatisplus
    官网啥都有https://baomidou.com/1.引入依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency>2.定义Mapp......
  • MyBatis-04-数据库配置
    XML解析时对environment节点的处理TransactionFactorytxFactory=transactionManagerElement(child.evalNode("transactionManager"));DataSourceFactorydsFactory=dataSourceElement(child.evalNode("dataSource"));DataSourcedataSource=dsFactory......
  • MyBatis-06-Spring的SqlSession和原始区别
    DefaultSqlSession这个就不说了,SQL执行是调用执行器Executor执行SqlSessionTemplate构造函数,虽然没有立即创建SqlSession传入代理拦截器SqlSessionInterceptor,但是拦截器是一个实例内部类,可以访问到SqlSessionFactory并且SqlSessionTemplate不支持commit、rollback......