Windows Bat 之For 循环

Windows Bat 之For 循环

1. For 循环基本用法。

1.1 格式

在cmd窗口中:

FOR %variable IN (set) DO command [command-parameters]

在Bat文件中:

FOR %%variable IN (set) DO command [command-parameters]

注意点:在cmd窗口中,for之后的形式变量I必须使用单百分号引用,即%i;而在批处理文件中,引用形式变量i必须使用双百分号,即%%i。
For语句的基本要素都有些什么:
1、for、in和do是for语句的关键字,它们三个缺一不可;
2、%%I是for语句中对形式变量的引用,就算它在do后的语句中没有参与语句的执行,也是必须出现的;
3、in之后,do之前的括号不能省略;
4、set 表示字符串或变量,command表示字符串、变量或命令语句;

1.2 查看Windows 帮助文档

使用 for /? 既可以查看

1.3 实用举例

1.3.1 列出当前路径下的所有txt 文件。

for %%i in (??.txt) do echo "%%i"

1.3.2 文本解析显 for /f 用法。
1)将命令行的值赋值给变量。

for /f %i in (‘wmic ComputerSystem get Manufacturer ^|find /v "Manu" ^| findstr .‘) do (set type=%i)

2)使用 "delims=" 指定分隔符,/f 默认是以空格或者Table 键作为分隔符。

for /f  "delims=," %i in (‘wmic ComputerSystem get Manufacturer ^|find /v "Manu" ^| findstr .‘) do (set type=%i)

ps: IF 语句的结构

for /f %%i in (‘wmic ComputerSystem get Manufacturer ^|find /v "Manu" ^| findstr .‘) do (set type=%%i)
if %type%=="HP" (
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"  /v fDenyTSConnections /t REG_DWORD /d 0 /f
:: 开启远程桌面服务
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber /t REG_DWORD /d 0x0000b239 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x0000b239 /f
) else if %type%=="Dell" (
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"  /v fDenyTSConnections /t REG_DWORD /d 0 /f
:: 开启远程桌面服务
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber /t REG_DWORD /d 0x0000b275 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x0000b275 /f
)else (
echo 您的服务器类型与指定的端口号不匹配
)

原文地址:https://blog.51cto.com/8686505/2413461

时间: 2024-11-13 08:08:21

Windows Bat 之For 循环的相关文章

windows bat脚本实现ftp自动下载 删除

现在有一个需求就是把远程某个文件下面的图片,下载到本地,并且删除下载成功的的文件,而且远程目录下的那个图片会随时增加.假设一下如果所有的脚本都写好了,那么就需要调用windows上的计划任务定时执行脚本就ok了,Linux上利用cronjob 同样可以做到.大体的实现思路如下,当然了不止这一种方式. 在远程服务器上搭建ftp server ,例如这里在远程服务上的 images 作为下载目录.搭建ftp server 最简单的方式就是用FileZilla Server 这个工具去搭建,很方便,零

windows bat命令 开启关闭Oracle服务

函数功能:该函数将一个字符串转为字形下标的数组.此函数可用来确定一种字体里是否存在某个字形 控制台下代码: #include "stdafx.h" #include <windows.h> #include"stdio.h" void main() { char ch[] = {'0'}; WORD chnl[20] = {0}; HDC hdc; hdc = GetWindowDC(0); int n = GetGlyphIndicesA(hdc,ch

windows bat启动多个应用程序

windows bat启动多个应用程序 CreationTime--2018年7月26日11点02分 Author:Marydon 1.应用场景 每天开机后,都需要打开平常所需要的软件,又不想将程序设为开机启动,能不能开机后,同时启动多个程序呢? 2.代码实现 第一步:新建一个文本文件 桌面-->右键-->新建-->文本文档-->双击打开 第二步:编辑命令 语法:start /d "程序所在路径" 程序名称.exe 一个程序占一行 ::启动qq start /d

Windows BAT 命令下del 与 rd 命令

https://blog.csdn.net/jigetage/article/details/81180757 RD 与 DEL 命令 windows bat 目录和文件的删除处理. 命令:RD,删除目录 增加参数:/S 参数说明:使用此参数即“RD/S”用于删除目录树,即删除目录及目录下的所有子目录和文件,相当于以前版本中的DELTREE命令. 增加参数:/Q XP中的增强DOS命令 参数说明:使用上面的/S参数删除目录树时,系统会要求 用户确认是否真的要删除.若同时使用/Q参数即“RD/S

Windows BAT字符串操作

::操作系统:windows xp sp3 @echo off ::初始化变量set str1=This is string1set str2=This is string2set str3=This is string3 ::先打印出原始数据echo str1=%str1%echo str2=%str2%echo str3=%str3% ::类似strcpy,将一个字符串复制到另一个字符型指针或字符数组,覆盖原来的字符串::实现方法:set 目标字符串=%源字符串%echo.echo ----

windows 和 linux 上 循环读取文件名称的区别和方法

function showGetFileName($type){ $url="/opt/mobile_system/gscdn"; //另一台服务器映射到linux过来的路径. #判断平台类型 if($type=='android'||$type=='ios'||$type=='windows'){ #拼接类型 $url=$url.'/'.$type.'/assets'; #读取该文件 得到所有文件的对象 $handle=opendir($url.".");//这是

一个简单的windows bat脚本

今天有一个windows脚本的需求,以前完全没写过windows的命令,无奈之下写出了一个这么low的脚本,这里也记录一下方@echo off @rem 脚本需求: @rem 1.压缩包文件会存放在一个固定路径 @rem 2.解压这个文件 @rem 3.通过java命令,运行解压过后的jar包 @rem 4.获取程序的进程ID,并输出 @rem 5.自己带一个JAVA安装包,用这个包里面的java环境?? @rem 设置环境变量 SET StorageDir=E:\windows脚本\存储路径

Windows BAT

一个BAT拷贝程序: :: For example: SRC_PATH = C:\hello\world :: and DEST_PATH = E:\another :: this program will first delete contents of DEST_PATH from the disk, then copy contents of SRC_PATH to DEST_PATH :: make sure this file is encoded with the default e

windows bat 文件设置JAVA_HOME 环境变量

背景介绍: 原来安装的MyEclipse 8.5 为32位的,前段时间开始学习Android开发,搞了一个adt-bundle 64位的,经常需要更改java版本,所以写了两个bat文件来修改JAVA_HOME bat内容 @echo off&setlocal enabledelayedexpansion&title 更改JAVA_HOME环境变量 color 0A cls echo======================================================