批处理下如何取得文件的名称

批处理下如何取得文件的名称,第1张

批处理文件的内容为: 文件表示:echo off不显示命令行dir c: >atxt 将c盘文件列表写入atxtcall c:ucdosucdosbat调用ucdosecho 你好显示"你好"pause暂停,等待按键继续rem 使用wps 注释将使用wpscd ucdos进入ucdos目录wps 使用wps批处理文件中还可以像C语言一样使用参数,这只需用到一个参数表示符%。%表示参数,参数是指在运行批处理文件时在文件名后加的字符串。变量可以从 %0到%9,%0表示文件名本身,字符串用%1到%9顺序表示。例如,C:根目录下一批处理文件名为fbat,内容为 format %1则如果执行C:>f a:则实际执行的是format a:又如C:根目录下一批处理文件的名为tbat,内容为 type %1 type %2那么运行C:>t atxt btxt 将顺序地显示atxt和btxt文件的内容 如是在纯DOS下那就和是什么 *** 作系统没有关系了因为你用的DOS也是一种 *** 作系统 - DOS *** 作系统(虽然现在已经不用了只用它解决问题)所谓批处理文件是bat后缀的文件里面包含一条或者多条命令删除文件的命令是:del txt 如你的文件:del hmtxt 即可删除制作bat的方法新建一个记事本(txt)打开后加入命令:del hmtxt 然后保存(当然如果你需要添加一些附加命令如“@echo off”也可以这里不作说明了)最后修改后缀名:把“txt”改成“bat”即可-----------------------------即使不是在纯DOS下也可以运行批处理文件WinNT下系统有控制台(就是模拟DOS界面和一些命令)可以说是Windows *** 作系统都可以运行批处理文件del 删除文件

打开命令行提示符(快捷键

win

+

r

完了,输入cmd,回车)

使用cd命令切换到你要显示文件夹名字的上级目录,完了使用下面一条命令,可以将文件夹下面所有目录的名字输入到一个文件中。

dir

目标文件夹路径

/ad

/b

>

目的文件

例如:

dir

d:

/ad

/b

>

c:filetxt

该命令的意思是将d盘下面的所有目录列出来输入到c盘根目录下的filetxt文件中。

解释一下/ad和/b这俩参数的意思,/ad是仅列出当前目录下的目录文件名,/b是不带目录的创建日期。

之后就是打开这个文本文件复制粘贴到excel中就是咯。

如果还不会,追问俺,我给你录个gif给你瞅瞅

以下代码复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件放一起运行

<# :

cls

@echo off

rem 按照资源管理器里的顺序输出文件名称

set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

cd /d "%~dp0"

powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IOFile]::ReadAllText('%~f0',[TextEncoding]::Default))) -Args '%~f0'"

echo;%#% +%$%%$%/%@% %z%

pause

exit

#>

$self=gi -liter $args[0];

$path=$selfDirectoryFullName;

$codes=@'

using System;

using SystemCollectionsGeneric;

using SystemRuntimeInteropServices;

public static class ExpDir

{

[DllImport("Shlwapidll", CharSet=CharSetUnicode)]

public static extern int StrCmpLogicalW(string p1, string p2);

public static string[] Sort(string[] f)

{

ArraySort(f, StrCmpLogicalW);

return f;

}

}

'@;

Add-Type -TypeDefinition $codes;

$fs=@(dir -liter $path|{$_Name -ne $selfName}|%{$_Name});

$list=[ExpDir]::Sort($fs);

for($i=0;$i -lt $listcount;$i++){write-host $list[$i];}

@Echo Off

For /f "tokens=" %%i in ('dir /ad /b /s "%~dp0"') do (

For /f "tokens=" %%j in ('dir /a-d /b /s "%%i\"') do (

Ren "%%j" "%%~nxi%%~xj"

Move "%%i\%%~nxi%%~xj" "D:\文件提取到此文件夹\"

Rd /q "%%i"))

Pause

以上内容保存为批处理文件(xxbat),和要提取文件的子文件夹放在一起即可,例如 和 文件夹1、文件夹2 放在一起

默认保留文件后缀名,如果不保留文件后缀名请删除 "%%~xj"

假设当前文件夹为aaa,且批处理文件在当前文件夹下,生成的txt文件也放在当前文件夹下的话:

@echo

off

dir/b/s>aaatxt

pause

如果不含子文件夹内容的话,/s参数可以省略

以上就是关于批处理下如何取得文件的名称全部的内容,包括:批处理下如何取得文件的名称、提取一个目录下的文件夹的名字、使用批处理提取文件名,为什么提取出来的名称顺序乱了哪位高手可否帮忙解决一下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9353136.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存