导航:首页 > 程序命令 > 批处理命令字符串处理

批处理命令字符串处理

发布时间:2022-05-16 19:18:28

‘壹’ 批处理命令字符串操作

1:怎么提取文件所在文件夹的路径,如从F:\TDDOWNLOAD\1.txt提取出F:\TDDOWNLOAD\
for %%a in (F:\TDDOWNLOAD\1.txt ) do echo %%~dpa

2:怎么从abc字符串中去除bc字符串,剩下a
setlocal enabledelayedexpansion
set str1=abc
set str2=bc
set str1=!str1:%str2%=!
echo %str1%

‘贰’ 如何使用批处理命令截取字符串指定部分

以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
@echo off
rem 去掉字符串开头的空格
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set "s= a b c"
for /f "tokens=*" %%a in ("%s%") do set "s=%%a"
echo;%s%
echo;%#% +%$%%$%/%@% %z%
pause
exit

‘叁’ 批处理 根据查找到的字符串 执行相应的命令

echo %sysinfo%|find "8"
if %errorlevel%==0 goto win8
echo %sysinfo%|find "7"
if %errorlevel%==0 (goto win7) else (goto xp)如果不对,应该是sysinfo变量在win8下就没有取到“8”这个字符,肯定是其他产品标识,换成相应的标志字符即可。win8以前,成功时errorlevel为0,失败为1;win8好像变成1和2了,所以这么做就不行了,如果把第一个判断改为errorlevel==1,则在win7和xp下就会跳转到win8段。

如果您能够确定就这三种类型系统运行该批处理,可以这样改(不太严谨,但应该能解决问题):
@echo %sysinfo%|find "7"
@if %errorlevel%==0 goto win7
@echo %sysinfo%|find "XP"
@if %errorlevel%==0 (goto xp) else (goto win8)

:win8
echo 我是Win8
pause
exit

:xp
echo 我是XP
pause
exit

:win7
echo 我是Win7
pause
exit

解释一下:win8下相当于原来所有判断都不成立,直接去执行接下来的:XP段了,所以您看到了错误的结果。现在改完了相当于在XP和win7下都能正常跳转,虽然在win8下还是不会跳转,但是紧接着就是win8段,根据之前的错误结果这段会马上执行,所有相当于利用该逻辑问题实现了系统判断。请您再试试吧。

‘肆’ 批处理命令大全

help 查看
reg /? 查看
net /? 查看
ftp /? 查看
mt /? 查看
还有些外部命令工具,例如fport,choice等

附help查看的内容(属dos内部命令)
ASSOC 显示或修改文件扩展名关联。
AT 计划在计算机上运行的命令和程序。
ATTRIB 显示或更改文件属性。
BREAK 设置或清除扩展式 CTRL+C 检查。
CACLS 显示或修改文件的访问控制列表(ACLs)。
CALL 从另一个批处理程序调用这一个。
CD 显示当前目录的名称或将其更改。
CHCP 显示或设置活动代码页数。
CHDIR 显示当前目录的名称或将其更改。
CHKDSK 检查磁盘并显示状态报告。
CHKNTFS 显示或修改启动时间磁盘检查。
CLS 清除屏幕。
CMD 打开另一个 Windows 命令解释程序窗口。
COLOR 设置默认控制台前景和背景颜色。
COMP 比较两个或两套文件的内容。
COMPACT 显示或更改 NTFS 分区上文件的压缩
CONVERT 将 FAT 卷转换成 NTFS。您不能转换
当前驱动器。
COPY 将至少一个文件复制到另一个位置。
DATE 显示或设置日期。
DEL 删除至少一个文件。
DIR 显示一个目录中的文件和子目录。
DISKCOMP 比较两个软盘的内容。
DISKCOPY 将一个软盘的内容复制到另一个软盘。
DOSKEY 编辑命令行、调用 Windows 命令并创建宏。
ECHO 显示消息,或将命令回显打开或关上。
ENDLOCAL 结束批文件中环境更改的本地化。
ERASE 删除至少一个文件。
EXIT 退出 CMD.EXE 程序(命令解释程序)。
FC 比较两个或两套文件,并显示
不同处。
FIND 在文件中搜索文字字符串。
FINDSTR 在文件中搜索字符串。
FOR 为一套文件中的每个文件运行一个指定的命令。
FORMAT 格式化磁盘,以便跟 Windows 使用。
FTYPE 显示或修改用于文件扩展名关联的文件类型。
GOTO 将 Windows 命令解释程序指向批处理程序
中某个标明的行。
GRAFTABL 启用 Windows 来以图像模式显示
扩展字符集。
HELP 提供 Windows 命令的帮助信息。
IF 执行批处理程序中的条件性处理。
LABEL 创建、更改或删除磁盘的卷标。
MD 创建目录。
MKDIR 创建目录。
MODE 配置系统设备。
MORE 一次显示一个结果屏幕。
MOVE 将文件从一个目录移到另一个目录。
PATH 显示或设置可执行文件的搜索路径。
PAUSE 暂停批文件的处理并显示消息。
POPD 还原 PUSHD 保存的当前目录的上一个值。
PRINT 打印文本文件。
PROMPT 更改 Windows 命令提示符。
PUSHD 保存当前目录,然后对其进行更改。
RD 删除目录。
RECOVER 从有问题的磁盘恢复可读信息。
REM 记录批文件或 CONFIG.SYS 中的注释。
REN 重命名文件。
RENAME 重命名文件。
REPLACE 替换文件。
RMDIR 删除目录。
SET 显示、设置或删除 Windows 环境变量。
SETLOCAL 开始批文件中环境更改的本地化。
SHIFT 更换批文件中可替换参数的位置。
SORT 对输入进行分类。
START 启动另一个窗口来运行指定的程序或命令。
SUBST 将路径跟一个驱动器号关联。
TIME 显示或设置系统时间。
TITLE 设置 CMD.EXE 会话的窗口标题。
TREE 以图形模式显示驱动器或路径的目录结构。
TYPE 显示文本文件的内容。
VER 显示 Windows 版本。
VERIFY 告诉 Windows 是否验证文件是否已正确
写入磁盘。
VOL 显示磁盘卷标和序列号。
XCOPY 复制文件和目录树。

‘伍’ 批处理命令 处理文件字符串超长问题

vbs

atxt=".a.txt"
btxt="..txt"
oldstr="abc"
newstr="zzz"
Setfso=Wscript.CreateObject("Scripting.FileSystemObject")
setf=fso.opentextfile(atxt)
s=replace(f.readall,oldstr,newstr)
f.close
setr=fso.opentextfile(btxt,2,true)
r.writes
msgbox"完成!"
Wscript.quit

互助互利,请及时点击【采纳回答】

‘陆’ 批处理查找字符串

用find 命令,语法为:FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]f /V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
/OFF[LINE] 不要跳过具有脱机属性集的文件。
"string" 指定要搜索的文字串,
[drive:][path]filename
指定要搜索的文件。如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。 按照你的要求可以这样写:echo %s1%|find "XXX" rem 查找变量s1中的XXX字符串

‘柒’ 批处理的字符串

批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集。批处理中可实现的字符串处理功能有:截取字符串内容、替换字符串特定字段、合并字符串、扩充字符串等功能。下面对这些功能一一进行讲解。 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符。举例说明其基本功能:
=========================================
@echo off
set ifo=abcdefghijklmnopqrstuvwxyz0 12 3456789
echo 原字符串(第二行为各字符的序号):
echo %ifo%
echo 1234567890123 45678901234567890123456
echo 截取前5个字符:
echo %ifo:~0,5%
echo 截取最后5个字符:
echo %ifo:~-5%
echo 截取第一个到倒数第6个字符:
echo %ifo:~0,-5%
echo 从第4个字符开始,截取5个字符:
echo %ifo:~3,5%
echo 从倒数第14个字符开始,截取5个字符:
echo %ifo:~-14,5%
pause
=========================================
当然,上面的例子只是将字符串处理的基本功能展示出来了,还看不出字符串处理具体有什么用处。下面这个例子是对时间进行处理。
=========================================
@echo off
echo 当前时间是:%time% 即 %time:~0,2%点%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒
pause
========================================= 替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串。举例说明其功能:
=========================================
@echo off
set aa=伟大的中国!我为你自豪!
echo 替换前:%aa%
echo 替换后:%aa:中国=中华人民共和国%
echo aa = %aa%
set aa=%aa:中国=中华人民共和国%
echo aa = %aa%
pause
=========================================
对于上面的例子有一点说明,对比两个echo aa = %aa%可以发现,如果要修改变量aa的内容的话,就需要将修改结果“%aa:中国=中华人民共和国%”赋值给变量aa。上面的字符串截取也有着同样的特点。 其实,合并字符串就是将两个字符串放在一起就可以了。举例说明:
=========================================
@echo off
set aa=伟大的中国!
set bb=我为你自豪!
echo %aa%%bb%
echo aa=%aa%
echo bb=%bb%
set aa=%aa%%bb%
echo aa=%aa%
pause
=========================================
同样,如果要改变变量aa的内容的话,就需要将合并结果“%aa%%bb%”赋值给变量aa。 “扩充”这个词汇来自于微软自己的翻译,意思就是对表示文件路径的字符串进行特殊的处理,具体功能罗列如下:
=========================================
~I - 删除任何引号(),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
%~zI - 将 %I 扩充到文件的大小
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个完全合格的名称。如果环境变量名
未被定义,或者没有找到文件,此组合键会扩充到
空字符串
可以组合修饰符来得到多重结果:
%~dpI - 仅将 %I 扩充到一个驱动器号和路径
%~nxI - 仅将 %I 扩充到一个文件名和扩展名
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名
%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个驱动器号和路径。
%~ftzaI - 将 %I 扩充到类似输出线路的 DIR
=========================================
以上内容引用于for /?帮助信息。其中的I代表变量I,不过需要说明的是,不是所有的变量都能够进行扩充的,有两个条件:1.该字符串代表一个文件路径;2.变量要用%x来表示,x可取a-z A-Z 0-9共62个字符中的任意一个。举例说明:
=========================================
@echo off
echo 正在运行的这个批处理:
echo 完全路径:%0
echo 去掉引号:%~0
echo 所在分区:%~d0
echo 所处路径:%~p0
echo 文件名:%~n0
echo 扩展名:%~x0
echo文件属性:%~a0
echo 修改时间:%~t0
echo 文件大小:%~z0
pause
=========================================
其中的%0是批处理里面的参数,代表当前运行的批处理的完全路径。类似的还有%1-%9,分别代表传递来的第1-9个参数。例子如下:
===============================================
@echo off
set aa=C:WindowsPPPa.btx
call :deal aaa %aa% c c ddd eee
pause>nul
exit
:deal
echo %%0 = %0
echo %%1 = %1
echo %%2 = %2
echo %%3 = %3
echo %%4 = %4
echo %%5 = %5
===============================================
其中,变量aa在之前是不可以扩充的,通过call命令并将aa作为参数传递给子函数:deal,将aa变量转换成了变量%1,即符合%x格式,从而可以进行字符串扩充。
至于%x中x取a-z A-Z的形式,可以复习一下for语句,for语句里面的变量就是用%x来表示的,因而可以直接进行扩充。

‘捌’ Windows批处理CMD如何截取一个字符串中指定字符后面的字符串

1、首先打开cmd窗口,然后输入格式:%PATH:str1=str2% 将字符串的变量%PATH%中的str1替换为str2。

‘玖’ 如何用批处理bat将多个txt文件中的指定字符串删除

不清楚你的实际文件/情况,仅以问题中的样例/说明为据
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
<# :
cls
@echo off
rem 根据一个指定文本文件里列出的多个字符串,将多个txt文本文件内的这些字符串删除
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~dp0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$path=$args[0];
$newfolder=$path+"#result";
$wordsfile=$path+"deletewords.log";
if(-not (test-path -liter $wordsfile)){Write-host ('"'+$wordsfile+'" not found');exit;};
if(-not (test-path -liter $newfolder)){[void](md $newfolder)};
$files=@(dir -liter $path|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
$enc=[Text.Encoding]::Default;$n=[char]([int]'56');
$wordslist=[IO.File]::ReadAllLines($wordsfile, $enc);
for($i=0;$i -lt $files.length;$i++){
write-host $files[$i].Name;
$text=[IO.File]::ReadAllText($files[$i].FullName, $enc);
for($j=0;$j -lt $wordslist.count;$j++){
$text=$text.replace($wordslist[$j], '');
};
if(($i+1) -le [int]$n.toString()){
$newfile=$newfolder+'\'+$files[$i].Name;
[IO.File]::WriteAllText($newfile, $text, $enc);
};
}

‘拾’ 如何用批处理命令(其他也可以)根据特定的字符串对某个文件夹里的所有文件进行分类

只能处理纯文本文件哦,批处理可放任意位置

@echo off&color f1
::下四行分别是要处理的文件夹、两字符串、新文件夹在哪建
cd/d "c:\x"
set "s1=aaa"
set "s2=bbbb"
set newd=c:\
if not exist "%newd%%s1%\" md ""%newd%%s1%"
if not exist "%newd%%s2%\" md "%newd%%s2%"
echo 正在处理:
for /f "tokens=*" %%a in ('dir/b/a-d ')do (
set/p fn=<"%%~a"
call :y "%%~a")
pause&exit
:y
call set a=%%fn:%s1%=ゅ%%
call set b=%%fn:%s2%=ゅ%%
if "%a:~,1%"=="ゅ" ( %1 "%newd%%s1%\">nul&echo %~1 =^> %newd%%s1%)
if "%b:~,1%"=="ゅ" ( %1 "%newd%%s2%\">nul&echo %~1 =^> %newd%%s2%)

阅读全文

与批处理命令字符串处理相关的资料

热点内容
数学奇迹神奇运算法 浏览:359
大厂的程序员的水平如何 浏览:700
遗传算法入门经典书籍 浏览:878
源码炮台脚本 浏览:620
在位编辑命令 浏览:347
曲式分析基础教程pdf 浏览:14
php生成静态html页面 浏览:964
怎么分割pdf 浏览:812
压缩垃圾报警器 浏览:628
小公司一般都用什么服务器 浏览:967
java获取时间gmt时间 浏览:819
为什么csgo一直连接不到服务器 浏览:504
安卓登ins需要什么 浏览:836
机器人算法的难点 浏览:226
全自动化编程 浏览:726
程序员高薪限制 浏览:693
压缩图片压缩 浏览:75
美国发明解压魔方 浏览:302
电脑怎么备案网上服务器 浏览:515
旅行商问题Python写法 浏览:952