[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何显示某个目录下的特定文件

  1. @echo off
  2. for %%i in (*.py) do (
  3.         echo %cd%%%i
  4.     )
  5. pause
复制代码
// 上面是显示盘符的,如何去掉盘符???
// 我是用切割字符的方法,可惜结果运行不对啊。
// 还有别的方法吗?
  1. for %%i in (*.py) do (
  2.         echo %cd:~3%%%i
  3.     )
  4. pause
复制代码

本帖最后由 netdzb 于 2020-5-16 23:14 编辑

回复 3# Batcher


我输出的结果是,假设当前目录是avs

我输出的是avshello.py,好像我字符串分割没有完全学好。

我希望得到avs\hello.py,当然斜杆我能加上去。

TOP

本帖最后由 netdzb 于 2020-5-17 04:47 编辑

回复 5# Batcher

里面一共4个版本代码,运行环境windows xp和win7的32位旗舰版本,
都出现了我描述的问题。
是不是command.com这个文件有问题?

https://javame.lanzous.com/icplvhg

TOP

回复 9# Batcher

2楼的结果是
\avs\hello.py
我预期的是avs\hello.py
7楼的一会打开电脑再试。

TOP

本帖最后由 netdzb 于 2020-5-18 13:36 编辑

回复 2# ivor

如果用shell应该怎么写?假设需要遍历目录下面还有二级子目录,需要遍历文件夹下所有的*.py文件。


for file in `ls $1`  // 如果需要遍历所有的*.py是不是这里

for file in `ls $1` // 是不是这里加上grep方法就可以了?

我找到了这个脚本,但是是递归的方法。

#! /bin/bash
function read_dir(){
for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
do
if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错
then
read_dir $1"/"$file
else
echo $1"/"$file #在此处处理文件即可
fi
done
}
#读取第一个参数
read_dir $1

TOP

返回列表