win7在batch文件中使用语句cd /d %~dp0读取当前路径

出处: http://hi.baidu.com/fenxijia/item/44acf9269163b3c9a4275aff

cd /d %~dp0 含义

这句的意思是 更改当前目录为批处理本身的目录 有些晕吧?不急,我举例 比如你有个批处理a.bat在D:\qq文件夹下 a.bat内容为 cd /d %~dp0 在这里 cd /d %~dp0的意思就是cd /d d:\qq %0代表批处理本身 d:\qq\a.bat ~dp是变量扩充 d既是扩充到分区号 d: p就是扩充到路径 \qq dp就是扩充到分区号路径 d:\qq 现在明白了吧? 如果还有什么不明白就去非常批处理论坛,我是提问区斑竹 地址:bbs.verybat.cn

 

 

### 使用BAT批处理命令获取文件名 #### 方法一:通过FOR循环遍历目录中的文件并记录到文本文件中 可以创建一个名为`get_filenames.bat`的批处理文件来实现这一功能。此脚本会读取指定路径下的所有文件并将它们的名字写入到`list.txt`文档里。 ```batch @echo off setlocal enabledelayedexpansion cd /d %~dp0 (for %%i in (*.*) do ( echo %%i >> list.txt )) pause ``` 这段代码首先关闭回显(`@echo off`),设置延迟变量扩展(`setlocal enabledelayedexpansion`)以便能够在一个for循环内部修改环境变量;改变当前工作目录至批处理所在位置(`cd /d %~dp0`);接着利用`(for %%i in (*.*) do ( ... ))`结构迭代每一个文件,并将其名称追加到`list.txt`中[^1]。 #### 方法二:使用DIR命令配合FINDSTR筛选特定类型的文件名 另一种方式是借助于Windows自带的`dir`指令加上管道符和字符串查找工具`findstr`一起完成任务: ```batch @ECHO OFF CD /D "%USERPROFILE%\Desktop" DIR *.jpg /B | FINDSTR /V /C:"." > images_list.txt PAUSE ``` 这里选择了桌面作为目标文件夹(CD),并且只关注`.jpg`图片格式(DIR *.jpg)。参数/B表示以简洁模式显示结果(仅列出文件名而不附加其他信息),而管道(|)后的部分用于过滤掉不需要的内容(FINDSTR /V /C:".")最后重定向输出到images_list.txt文件中[^2]。 #### 方法三:直接调用PowerShell cmdlet简化操作流程 对于更复杂的场景或者想要更加灵活地控制输出格式的情况来说,可以直接在批处理里面嵌套执行powershell语句: ```batch @Echo Off Set "TargetFolder=C:\Path\To\Folder" Powershell -Command ^ "Get-ChildItem '%TargetFolder%' -File | Select-Object Name | Out-File 'output.txt' -Encoding UTF8" Pause ``` 上述例子展示了怎样运用PowerShell内置函数(Get-ChildItem,-File选项确保只返回实际存在的文件而非子目录)选取所需属性(Name即文件名字段),再经由Out-File保存最终的结果集为UTF编码形式的文字档(output.txt)[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值