---------siwuxie095

 
 

 
 

 
 

 
 

一个问题分析:

在 CMD 窗口输入:

dir

dir /b

dir /b /ah

dir C:\Windows

dir C:\Windows /b

dir C:\windows /b /ah

dir C:\temp.txt /b /ah

 
 

或在批处理文本中:

@echo off

dir

dir /b

dir /b /ah

dir C:\Windows

dir C:\Windows /b

dir C:\windows /b /ah

rem 手动在C盘根目录添加一个 temp.txt

dir C:\temp.txt /b /ah

pause

 
 

所有指令都可以执行,保存为批处理文件,

也可以正确执行

 
 

 
 

如:显示文件时间

@echo off

for /f "delims="
%%i in ('dir /b') do
echo
%%~ti

pause

 
 

也可以正确执行,dir 没有指明搜索路径,就默认为

当前路径

 
 

 
 

如果指明搜索路径:

@echo off

for /f "delims="
%%i in ('dir C:\windows /b') do
echo
%%~ti

pause

 
 

程序不能正确执行,无论对搜索的格式如何修改

 
 

这种改法:

for /f "delims=" %%i in ('dir C:\ /b /ah') do echo %%~ti

还是不能正确执行

 
 

如果直接在
CMD 窗口执行,需要减少一个 %:

for /f "delims=" %i in ('dir C:\ /b /ah') do echo %~ti

还是不能正确执行

 
 

 
 

%~aI

%~tI

%~zI

%~$path:I

这四个变量都有这个现象,即不能指定路径,但其余的变量都不会

出现这个问题,让人百思不得其解

 
 

出现上面问题的原因是:

%~aI

%~tI

%~zI

需要指明完整路径,而 dir 搜索出的只是文件名,这样
%%~ti 就把

当前工作目录设置为文件的路径,所以找不到文件

 
 

用 pushd
来转到相应目录即可:

@echo off

pushd C:\windows

for /f "delims="
%%i in ('dir C:\windows /b') do
echo
%%~ti

pause

 
 

 
 

也可以用 cd /d 来指明路径:

@echo off

cd /d C:\windows

for /f "delims="
%%i in ('dir C:\windows /b') do
echo
%%~ai

pause>nul

 
 

 
 

 
 

最后一个,%~$path:I 非常特殊:

@echo off

pushd C:\

rem 手动在C盘添加一个 temp.txt

for /f "delims="
%%i in ('dir c:\temp.txt /b /ah') do
echo
%%~$path:i

pause

 
 

还是不能正确执行

 
 

如果改为:

@echo off

rem 手动在 C盘
添加一个 temp.txt

rem 单引号里有两个空格[必不可少],然后就出现了结果中那样

rem 如果多加一个
空格,会多出一个 ECHO 处于关闭状态

for
%%i in ('dir C:\temp.txt ') do
echo
%%~$path:i

pause

 
 

sublime中:

 
 

 
 

运行一览:显示两个
ECHO 处于关闭状态

和
一个正确的结果

 
 

 
 

 
 

再如:

@echo off

for
%%a in ("%path:;=" "%")
do
echo
%%~a

pause

 
 

sublime中:

 
 

 
 

运行一览:目的就是把 PATH 环境变量的每个路径

分离出来进行逐行显示

 
 

 
 

 
 

 
 

 
 

【made by siwuxie095】

 
 

 
 

for 续8的更多相关文章

  1. .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整(续)-使用配置文件动态注入

    上次实现了依赖注入,但是web项目必须要引用业务逻辑层和数据存储层的实现,项目解耦并不完全:另一方面,要同时注入业务逻辑层和数据访问层,注入的服务直接写在Startup中显得非常臃肿.理想的方式是,w ...

  2. [.NET] C# 知识回顾 - 委托 delegate (续)

    C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...

  3. iOS 开发者账号到期续费流程

    1.登录developer.apple.com,查看到期时间 2.到期提醒通知,点击Renew Membership续费(一般提前一个月提醒续费) 3.个人开发者账号续费需要支付 688人民币/年(9 ...

  4. 微信公众号开发系列教程一(调试环境部署续:vs远程调试)

    http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...

  5. CI-持续集成(1)-软件工业“流水线”概述

    CI-持续集成(1)-软件工业“流水线”概述 1   概述 持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次, ...

  6. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续3篇-导出时动态生成多Sheet EXCEL)

    ExcelUtility 类库经过我(梦在旅途)近期不断的优化与新增功能,现已基本趋向稳定,功能上也基本可以满足绝大部份的EXCEL导出需求,该类库已在我们公司大型ERP系统全面使用,效果不错,今天应 ...

  7. [译]Godot系列教程三 - 场景实例化(续)

    场景实例化(续) 要点 场景实例化带来很多便利的用法,总体来说有: 将场景细分,更便于管理 相对于某些引擎中的Prefab组件更灵活,并且在许多方面更强大 是一种设计更复杂的游戏流程甚至UI的方式 这 ...

  8. 【小白的CFD之旅】13 敲门实例【续3】

    接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...

  9. 【小白的CFD之旅】12 敲门实例【续2】

    接上文[小白的CFD之旅]敲门实例[续] 主要内容 3 Solution3.1 Solution Methods3.2 Solution Controls3.3 Monitors3.4 Report ...

  10. jquery实现简单瀑布流布局(续):图片懒加载

    # jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...

随机推荐

  1. 互评Alpha版本

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2323] 队名:二次元梦之队 组长:刘莹莹 组员:周昊 潘世维  王玉潘 赵美增 ...

  2. C++面向对象高级编程(九)Reference与重载operator new和operator delete

    摘要: 技术在于交流.沟通,转载请注明出处并保持作品的完整性. 一 Reference 引用:之前提及过,他的主要作用就是取别名,与指针很相似,实现也是基于指针. 1.引用必须有初值,且不能引用nul ...

  3. mysql alter修改字段的长度 类型sql语句

    在mysql中alter命令可以修改字段类型,长度,名称或一些其它的参数,下面我来给大家介绍alter函数修改字段长度与类型的两个命令,希望文章来给各位带来帮助.     mysql 修改字段长度 a ...

  4. 编写高质量代码 改善Python程序的91个建议 (读后 小记)

    此书是自己好久之前买的,当时总觉得Python语言中有各种trick, 总是要自己猝不及防的掉入到陷阱之中, 看了一些资料后发现了这本书,感觉很是不错,不过可惜自己平时总是杂事太多,总是找不到整块的时 ...

  5. 中南林业科技大学第十一届程序设计大赛- I:背包问题

    链接:https://www.nowcoder.com/acm/contest/124/I来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 131072K,其他语言26214 ...

  6. 使用jsonschema2pojo-maven-plugin 插件根据json文件生成代码

    jsonschema2pojo 是一个不错的工具,可以帮助我们快速的根据json 文件生成pojo代码,提高开发效率,以下为简单的 使用maven 插件进行代码生成 使用maven 插件配置 < ...

  7. 洛谷4294 [WC2008]游览计划——斯坦纳树

    题目:https://www.luogu.org/problemnew/show/P4294 大概是状压.两种转移,一个是以同一个点为中心,S由自己的子集拼起来:一个是S相同.中心不同的同层转移. 注 ...

  8. ODBC, OLEDB, ADO, ADO.Net的演化简史

    ODBC, OLEDB, ADO, ADO.Net的演化简史 Copy&Paste了一下午,终于一蹴而就此文,嘿嘿... 1.演变历史 它们是按照这个时间先后的顺序逐步出现的,史前->O ...

  9. Python 迭代对象、迭代器、生成器

    原文出处: liuzhijun 本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators,俺写的这篇文章是按照自己的理解做的参考翻译,算不上是原文 ...

  10. bzoj 3059: 归途与征程

    Description 给出一个长度为N的由小写字母’a’~’z’和’*’组成的字符串A,一个长度为M的仅由小写字母’a’~’z’组成的字符串B.一个’*’可以匹配任意多个字符(包括0个).求在B的所 ...