批处理参数详解

网上科普有关“批处理参数详解”话题很是火热,小编也是针对批处理参数详解寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。FOR命令中的变量...

网上科普有关“批处理参数详解”话题很是火热,小编也是针对批处理参数详解寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

FOR命令中的变量

FOR命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法!

先把FOR的变量全部列出来:

~I - 删除任何引号("),扩展 %I

%~fI - 将 %I 扩展到一个完全合格的路径名

%~dI - 仅将 %I 扩展到一个驱动器号

%~pI - 仅将 %I 扩展到一个路径

%~nI - 仅将 %I 扩展到一个文件名

%~xI - 仅将 %I 扩展到一个文件扩展名

%~sI - 扩展的路径只含有短名

%~aI - 将 %I 扩展到文件的文件属性

%~tI - 将 %I 扩展到文件的日期/时间

%~zI - 将 %I 扩展到文件的大小

%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展

到找到的第一个完全合格的名称。如果环境变量名

未被定义,或者没有找到文件,此组合键会扩展到

空字符串

我们可以看到每行都有一个大写字母"I",这个I其实就是我们在FOR带入的变量,我们FOR语句代入的变量名是什么,这里就写什么.

比如:FOR /F %%z IN ('set') DO @echo %%z

这里我们代入的变量名是z那么我们就要把那个I改成z,例如%~fI改为%~fz

至于前面的%~p这样的内容就是语法了!

好开始讲解:

~I - 删除任何引号("),扩展 %I

这个变量的作用就如他的说明,删除引号!

我们来看这个例子:

首先我们在桌面建立一个名字为temp.txt文本文件,在里面输入这些内容

"1111

2222"

"3333"

44"44

然后在建立个BAT文件代码如下:

FOR /F "delims=" %%i IN (temp.txt) DO @echo %%~i

pause

执行后,我们看CMD的回显如下:

1111

2222"

3333

44"44

和之前temp.txt中的内容对比一下,我们会发现第一行和第三行的引号都消失了,这就是删除引号~i的作用了!

删除引号规则如下(BAT兄补充!)

1、若字符串首尾同时存在引号,则删除首尾的引号;

2、若字符串尾不存在引号,则删除字符串首的引号;

3、如果字符串中间存在引号,或者只在尾部存在引号,则不删除。

%~fI - 将 %I 扩展到一个完全合格的路径名

看例子:

把代码保存放在随便哪个地方,我这里就放桌面吧.

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~fi

pause

执行后显示内容如下

C:\Documents and Settings\Administrator\桌面\test.bat

C:\Documents and Settings\Administrator\桌面\test.vbs

当我把代码中的 %%~fi直接改成%%i

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%i

pause

执行后就会显示这些内容

test.bat

test.vbs

通过对比,我们很容易就看出没有路径了,这就是"将 %I 扩展到一个完全合格的路径名"的作用

也就是如果%i变量的内容是一个文件名的话,他就会把这个文件所在的绝对路径打印出来,而不只单

单打印一个文件名,自己动手动实验下就知道了!

%~dI - 仅将 %I 扩展到一个驱动器号

看例子:

代码如下,我还是放到桌面执行!

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~di

pause

执行后我CMD里显示如下

C:

C:

我桌面就两个文件test.bat,test.vbs,%%~di作用是,如果变量%%i的内容是一个文件或者目录名,他就会把他这文件

或者目录所在的盘符号打印出来!

%~pI - 仅将 %I 扩展到一个路径

这个用法和上面一样,他只打印路径不打印文件名字

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~pi

pause

我就不打结果了,大家自己复制代码看结果吧,下面几个都是这么个用法,代码给出来,大家自己看结果吧!

%~nI - 仅将 %I 扩展到一个文件名

只打印文件名字

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ni

pause

%~xI - 仅将 %I 扩展到一个文件扩展名

只打印文件的扩展名

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~xi

pause

%~sI - 扩展的路径只含有短名

打印绝对短文件名

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~si

pause

%~aI - 将 %I 扩展到文件的文件属性

打印文件的属性

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ai

pause

%~tI - 将 %I 扩展到文件的日期/时间

打印文件建立的日期

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ti

pause

%~zI - 将 %I 扩展到文件的大小

打印文件的大小

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~zi

pause

%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展

到找到的第一个完全合格的名称。如果环境变量名

未被定义,或者没有找到文件,此组合键会扩展到

空字符串

这是最后一个,和上面那些都不一样,我单独说说!

我们先在桌面建立一个temp.txt文件,里面写上这些内容

c:\windows

c:\windows\system32

c:\windows\teett

然后在把这些代码保存为批处理,放在桌面.

FOR /F "delims==" %%i IN (temp.txt) DO @echo %%~$PATH:i

pause

执行后CMD显示如下内容

c:\WINDOWS

c:\WINDOWS\system32

ECHO 处于打开状态。

为什么会这样呢,还有一行c:\windows\teett呢?

我们直接在CMD里输入echo %path% 会显示C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem

%%~$PATH:i也就是在文本里寻找匹配这个PATH变量值的内容,如果里面的内容和PATH变量相同,就打印出来

如果不相同,就显示一个空行!

只能适用于PATH变量,其他变量不行,如果要比较很多值,可尝试把值赋予给PATH变量,我没测试!

好了,FOR的的变量就介绍到这了!

出现的问题提示 `UnicodeEncodeError: 'ascii' codec can't encode characters in position 14-15: ordinal not in range(128)` 表明在尝试打开文件名包含非ASCII字符的文件时出错。这通常是因为Python在某些情况下默认使用ASCII编码。

在您的例子中,文件名“网页.html”包含了中文字符,这些字符在ASCII编码表中找不到对应的编码,所以尝试用ASCII来编码这些字符时会失败。

为了解决这个问题,需要确保文件路径在传递给 `open` 函数前是正确编码的。Python 3默认字符串是使用UTF-8编码的,所以通常不应该有这个问题。但在Apache/mod_wsgi的设置中可能会有一个环境问题导致不使用默认的UTF-8编码。

可以尝试以下方法解决这个问题:

1. 确保Apache的配置设置了正确的locale,比如通过设置 `Lang` 和 `Locale` 环境变量。

2. 在代码中,如果更改文件名为其UTF-8编码的版本可能会有帮助,但这不是一个理想的解决方案,因为它降低了代码的可读性和可维护性。

3. 检查您的mod_wsgi是否使用了正确的Python环境,如果您安装了多个Python版本或使用虚拟环境,mod_wsgi必须被配置为使用正确的版本。

4. 您可以尝试显式地告诉Python使用UTF-8编码。在Python文件的开始部分添加以下代码行:

```python

import sys

import locale

locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')

sys.setdefaultencoding('UTF-8')

```

请注意,`setdefaultencoding` 方法在Python 3中已经被移除,不能直接使用。

5. 如果您有权限修改服务器的环境变量,确认`LANG`和`LC_ALL`环境变量是否被正确设置为UTF-8编码,例如:

```shell

export LANG='en_US.UTF-8'

export LC_ALL='en_US.UTF-8'

```

这两行可以加入到 Apache 启动脚本中,或者如果您使用的是系统D服务,可以加入到服务文件的[Service]部分。

请测试上述解决方案,并确保重新启动Apache服务以应用更改。如果问题仍然存在,建议检查其他可能影响环境编码的系统设置或者寻求更深入的调试。

关于“批处理参数详解”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[银子诺]投稿,不代表空气号立场,如若转载,请注明出处:https://haokongqi.org.cn/cshi/202504-874.html

(172)

文章推荐

  • 前端和后端开发有什么区别吗?_1

    网上科普有关“前端和后端开发有什么区别吗?”话题很是火热,小编也是针对前端和后端开发有什么区别吗?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。展示方式不同,所用技术不同。前端开发用到的技术包括但不限于html。css。javascript、jquery、B

    2025年03月01日
    133
  • 实测教程“途游四川麻将怎么开挂(WHEELIE LIFE2)

    网上科普有关“途游四川麻将怎么开挂”话题很是火热,小编也是针对途游四川麻将怎么开挂寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,途游四川麻将怎么开挂这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会发现很多用户的

    2025年03月04日
    9
  • 实测教程“友友南宁麻将怎么一直输(死神vs火影1.1下载)

    网上科普有关“友友南宁麻将怎么一直输”话题很是火热,小编也是针对友友南宁麻将怎么一直输寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,友友南宁麻将怎么一直输这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会发现很多

    2025年03月05日
    11
  • 实测教程“小幺湖南麻将开挂怎么开(tfboys粉丝俱乐部)

    网上科普有关“小幺湖南麻将开挂怎么开”话题很是火热,小编也是针对小幺湖南麻将开挂怎么开寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,小幺湖南麻将开挂怎么开这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会发现很多

    2025年03月05日
    8
  • 哈尔滨疫情什么时候恢复正常(哈尔滨疫情什么时候得到控制)

    今天给各位分享哈尔滨疫情什么时候恢复正常的知识,其中也会对哈尔滨疫情什么时候得到控制进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!哈尔滨预计多久解封2022年12月份1、最后,在2022年12月7日,哈尔滨疫情恢复正常,全面解封。居民可以自由出入小区、村屯和各公共场所,公共

    2025年03月06日
    23
  • 分享干货”十三水透视选牌”(其实是有挂)

    分享干货”十三水透视选牌网上科普有关“分享干货”十三水透视选牌”话题很是火热,小编也是针对分享干货”十三水透视选牌寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,分享干货”十三水透视选牌这款游戏可以开挂的,确实是有挂的,通过微信【】很

    2025年03月07日
    11
  • 分享干货”微乐锄大地透视免费安装(开挂神器怎么用)

    分享干货”微乐锄大地透视免费安装网上科普有关“分享干货”微乐锄大地透视免费安装”话题很是火热,小编也是针对分享干货”微乐锄大地透视免费安装寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,分享干货”微乐锄大地透视免费安装这款游戏可以开挂

    2025年03月07日
    10
  • 分享干货”新道游互娱有没有挂”(其实是有挂)

    分享干货”新道游互娱有没有挂网上科普有关“分享干货”新道游互娱有没有挂”话题很是火热,小编也是针对分享干货”新道游互娱有没有挂寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,分享干货”新道游互娱有没有挂这款游戏可以开挂的,确实是有挂的

    2025年03月08日
    10
  • 武汉疫情出自哪里(武汉疫情起源于哪里)

    今天给各位分享武汉疫情出自哪里的知识,其中也会对武汉疫情起源于哪里进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!武汉疫情哪一年发生的2020年日历年。武汉疫情爆发,始于2019年12月27日。2020年1月23日以武汉作为疫情爆发点进行了封城,直到4月8日零时武汉解封。武汉

    2025年03月10日
    19
  • 新冠疫情比非典严重吗(新冠比起非典)

    本篇文章给大家谈谈新冠疫情比非典严重吗,以及新冠比起非典对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。新型冠状病毒肺炎与非典哪个严重传染性;严重程度。从传染性来看,冠状病毒的传染性较非典强。从疾病的危害程度来看,非典对人体的危害程度较冠状病毒大。从我国目前资料分析,非典的危重病发生率、死

    2025年03月30日
    12

发表回复

本站作者后才能评论

评论列表(4条)

  • 银子诺
    银子诺 2025年04月19日

    我是空气号的签约作者“银子诺”!

  • 银子诺
    银子诺 2025年04月19日

    希望本篇文章《批处理参数详解》能对你有所帮助!

  • 银子诺
    银子诺 2025年04月19日

    本站[空气号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 银子诺
    银子诺 2025年04月19日

    本文概览:网上科普有关“批处理参数详解”话题很是火热,小编也是针对批处理参数详解寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。FOR命令中的变量...