打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DOS里如何判断文件大小及其它?我的一些
@echo off  call :lis "c:\1.txt" var
call :lis "c:\2.txt" num
if %var% == %num% exit
echo 这里写继续执行的代码
pause
exit
:lis for %%a in (%~1) do set "%2=%%~za"
goto :eof
更改同一目录下,扩展名相同的文件名后加相同的字符 如 2017
注意  set foo="%%~ni"  中比参数 set foo="%%~nxi"  少  x  ,即少 扩展名
@echo on
rem 进入到批处理文件所在目录。
cd /d "%~dp0"
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b *.xlsx') do (
set foo="%%~ni"
set foo=!foo: =!
set foo=!foo: =!
ren "%%~fi" "!foo!2017.xlsx"
)
pause
win7下用bat修改ip
步骤 :
@echo on
echo  -------IP地址修改-------
echo 确定操作请按任意键,否则请退出
pause >nul
set name="本地连接"
Rem dhcp | static
set source="static"
Rem 把address修改为你的ip地址
set address=192.168.2.68
Rem 把mask 修改你你的子网掩码
set mask=255.255.255.0
Rem 把gateway修改为你的网关
set gateway=192.168.2.254
Rem 开始运行命令
echo IP设置中...
echo          IPv4地址:%address%
echo          子网掩码:%mask%
echo          网关:%gateway%
netsh interface ip set address %name% %source% ^
%address% %mask%
%gateway%
echo 如果没有系统提示额外信息则表示成功,否则请根据系统提
示检查错误
pause>nul
2.批处理去掉文件名中的空格
批处理的方式将多个文件名中的空格去掉,使其变为cmd下可以被一般命令识别的文件名,加“”的方法不要提了。
@echo on
rem 进入到批处理文件所在目录。
cd /d "%~dp0"
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b *.mp3') do (
set foo="%%~nxi"
set foo=!foo: =!
set foo=!foo: =!
ren "%%~fi" "!foo!"
)
pause
3将文件名(已用上面的去掉了文件名中的空格)中前18个字符去掉,保留后面的字符作文件名。
setlocal enabledelayedexpansion
@echo on
for /f "delims=" %%i in ('dir /b "*.mp3"') do call :ss %%i
goto :eof
:ss
set var1=%1
echo %1
set m=%var1:~18,20%
echo %m%
rem FOR /f %%i in (*.mp3) do (
ren "%var1%"  "%m%"
pause
)
goto :eof
4,文件名第一个是数字的,将数字放到文件名的尾,并在数字前面加字符a
@echo on
rem 进入到批处理文件所在目录。
cd /d "%~dp0"
rem "去掉文件名中的 [有声下吧www.Ysx8.com]" 汉字开头的文件名有的在dos状态下前显示有空格,字母和数字开头的能更名。
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b *.mp3') do (
set foo="%%~nxi"
set foo=!foo:[有声下吧www.Ysx8.com]=!
set foo=!foo:[有声下吧www.Ysx8.com]=!
ren "%%~fi" "!foo!"
)
pause
rem
rem 将文件名(已用上面的去掉了文件名中的空格)中前18个字符去掉,保留后面的字符作文件名。
setlocal enabledelayedexpansion
@echo on
cd /d "%~dp0"
cd
for /f "delims=" %%i in ('dir /b "*.mp3"') do call :ss
%%i
:eof
exit
:ss
set k=%1
echo %1
rem 去文件中 “1__飞狐外传09-11.mp3“ 扩展名“.mp3”
set var1=%k:~,-4%
rem 取var1值中的序号
set left=%var1:~0,1%
rem 无数字开头文件名,由于 left=%var1:~0,1%参数是1,是汉字的无法更改文件名。
rem 取var1值中的从第三个开始的字符
set right=%var1:~3%
rem 在序号前添字符a   全名是:     right+a+left
set name2= %right%a%left%
ren "%k%"  "%name2%.mp3"
pause
看下例可以知道%~1中的~ 用作绝对路径。
%、%%
百分号用在不同的场合,有不同的含义:
① 当百分号成对出现,并且其间包含非特殊字符时,一般做变量引用处理,比如:%var%、%str%。把以下代码保存为批处理文件,运行后观察屏幕显示结果:
@echo off
set str=abc
echo 变量 str 的值是: %str%
pause
在屏幕上将显示这样的结果:
变量 str 的值是: abc
按任意键继续...
另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10个数字,如%0、%1,其中,%0为脚本本身的名称,%1至%9为第二至九个参数...最多支持%0~%9,%10以后就是变量引用了,即%15为%1的值接上5。
请看演示代码:
@echo off
if defined str goto next
set str=
set /p str=请把文件拉到本窗口后回车:
call "%~0" %str%
pause
exit
:next
cls
echo 本批处理文件完整路径为:"%~0"
echo 拖到本窗口的文件完整路径为:"%~1"
goto :eof
② 在 set 语句中:和~同时使用时,: 起到截取字符串的功能。假设 set str=abcde,那么,set var=%str:~0,1% 表示截取字符串abcde的第一个字符;和=同时使用时,起到替换字符串的功能。假设:set str=abc:de,那么,set var=%str:a=1% 则表示把字符串abc:de中的a替换为1,set var=%str::=2% 则表示把字符串abc:de中的:替换为2;
③ 用在for语句中,表示增强for的功能,能够提取到更多的信息。例如:在批处理文件的for语句中:%%~i表示去掉第一对外侧引号,%%~zi表示获取文件的大小(以字节为单位),%%~ni表示获取文件名,%%~xi表示获取扩展名(带点号)……它们可以组合使用,如%%~nxi表示获取文件名和后缀名。
*********************************************
截取功能统一语法格式为:%a:~[m[,n]]%
**********************************************
方括号表示可选,%为变量标识符,a为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0),n为截取长度(缺省为全部)。
百分号如果需要当成单一字符,必须写成%%
以上是dos变量处理的通用格式,如果其中的m、n为变量,那么这种情况就是变量嵌套了。
比如设变量word为“abcdefghij”,变量num为“123456789”
%word:~4,1%为e,其中4可以从变量num中取值,即%num:~3,1%,写成组合形式如下:
%word:~%num:~3,1%,1% 经测试这种写法不能正确执行,写成%word:~(%num:~3,1%),1%同样不行,那么,怎么实现这种变量嵌套呢?这就必须结合命令嵌套。
什么是命令嵌套呢?简单的说,首先用一条dos命令生成一个字符串,而这个字符串是另一条dos命令,用call语句调用字符串将其执行,从而得到最终结果。
例:用call语句实现命令嵌套@echo off
set str1=aaa echo ok bbb
echo 初始字符串:%str1%
echo 生成命令字符串如下:
echo %str1:~4,7%
echo 运行命令字符串生成最终结果为:
call %str1:~4,7%
pause
复制代码
运行显示:
初始字符串:aaa echo ok bbb
生成命令字符串如下:
echo ok
运行命令字符串生成最终结果为:
ok
@echo off
title 静态IP设置
用法: set address [name=]<string>
[[source=]dhcp |
[source=] static [addr=]IP address [mask=]IP subnet mask]
[[gateway=]<IP address>|none [gwmetric=]integer]
参数:
标记            值
name          - 接口名称。
source        - 下列值之一:
dhcp: 对于指定接口,设置用 DHCP 配置 IP
地址。
static: 设置使用本地静态配置设置 IP
地址。
gateway       - 下列值之一:
<IP address>: 您设置的 IP 地址的指定默认
网关。
none: 不设置默认网关。
gwmetric      - 默认网关的跃点数。如果网关设置为 'none',则
不应设置此字段。
只有在 'source' 为 'static' 时才设置下列选项:
addr          - 指定接口的 IP 地址。
mask          - 指定 IP 地址的子网掩码。
注释    : 用来将 IP 地址配置模式从 DHCP 模式改为 static,或从 static
模式改为 DHCP。用静态 IP 地址在接口上添加 IP 地址,或添加
默认网关。
示例    :
set address name="Local Area Connection" source=dhcp
set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1
----------------------------------------------------------------------------
了解了用法之后,我们就可以进行设置了:
在netsh interface ip>之后输入
set address "本地连接" static 192.168.4.23 255.255.255.192 192.168.4.1 1
然后回车,稍候会显示“确定”,IP设置完毕。
这里解释一下,“本地连接”是指Windows“网络属性”中看到的连接的名称,static表示要指定静态IP而非DHCP指派,后面三个分别是IP,子网掩码,网关,最后的“1”是指默认网关的跃点数,一般为“1”。
至此,命令行下设置IP完成。
同时你还可以在命令行下更改DNS设置,用的是set dns命令,你可以输入set dns /?查看使用方法。
最后,我们将这些命令保存为一个BAT文件(setIP192168423.bat):
@echo off
rem eth //eth 为网卡名称,可在网络连接中查询,如"本地连接"
set eth="本地连接"
rem ip //ip 为你想更改的IP
set ip=192.168.4.23
rem gw //gw 为网关地址
set gw=192.168.4.1
rem netmasks //netmasks 为子网掩码
set netmasks=255.255.255.192
echo 正在将本机IP更改到: %ip%
rem
if %gw%==none netsh interface ip set address %eth% static %ip% %netmasks% %gw% > nul
if not %gw%==none netsh interface ip set address %eth% static %ip% %netmasks% %gw% 1 > nul
echo.........................
echo 检查当前本机IP:
ipconfig
echo.........................
echo 成功将本机IP更改为%ip%!
pause
close
通过Netsh里面的dump命令可以直接显示配置脚本。
而通过netsh -c interface ip dump >c:interface.txt的方式可以导出配置脚本(生成txt文件)。
然后再netsh -f c:interface.txt的方式又可以把导出的配置脚本再导回去(从txt文件读取内容)。
一来一去间,就可以轻松的实现方便的修改配置。
Netsh里面还有很多很多命令,诸如可以进入netsh环境后,在根级目录用exec命令
也可以加载一个配置脚本。
另外还有对wins、路由、ras等服务的配置也可以通过Netsh的内置命令直接操作。
Windows的帮助里面都有相关的介绍。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
BAT 命令中如何消除字符串变量前后空格?
Windows BAT批处理命令详解
批处理中字符串分割实现代码
精通批处理教程--隐客居
批处理中的for语句小结 - 批处理教学&资料 - 批处理之家 ─ 做最实用的批处理论坛 - Powered by Discuz!
批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服