如何用CMD提取一个文件路径的文件名?并赋值 高分送上
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用CMD提取一个文件路径的文件名?并赋值 高分送上相关的知识,希望对你有一定的参考价值。
比如提取 c:\1.txt 这样一个路径 最后的文件名,怎么提取? 不要用什么SET提取最后5个字符什么的,如果是11.txt 那又不是提取不完整, 有人会吗?
使用DOS命令中的dir就可以生成这样的文本文件。下面介绍具体操作方法。1.以Windows XP操作系统为例,单击“开始|运行”,输入cmd,如图1所示,然后单击“确定”。
图1 开始cmd命令
3.在命令提示符窗口中输入以下命令,如图2所示。
dir d: >c:filelist.txt
图2 用此命令生成列表文件
这样就在C:盘根目录下生成了一个名为“filelist.txt”的文本文件,该文件中即包含D:盘的文件夹列表。
如果希望将D:盘中子目录中的文件和文件夹列表也全部列出来,可以在命令提示符窗口中输入以下命令。
dir d: /s >c:filelist.txt
如果使用下面的命令,即加一个/b,则会生成一个简单的文件名列表,不包括其它信息,这种方法可能更加实用一些。
dir d: /s /b >c:filelist.txt
生成文本文件后,就可以将该文件中的内容拷贝到Excel中以备日后查询,或者将该文件作为一个对象插入到Excel工作表中。这样以后就可以快速找到所需要的文件了。 参考技术A 用dir /b 来显示单纯的文件信息。
如提取C:\下所有文件名:
dir /b c:\
提取C:\Windows子目录下所有文件名:
dir /b c:\windows
若把C:\Windows子目录中所有文件名放到一个文件(c:\ls.txt)中去,可以这样:
dir /b c:\windows >c:\ls.txt
这样,在C盘的根目录中就生成一个文本文件:ls.txt。其中是所有C:\Windows中的文件名。
试试吧。 参考技术B @echo off
:: 获取最后一个\之后的字符串
:: 利用set来抛弃\之前的所有字符
:: 该方法最具通用性,扩展之后可以获取任意层次的文件夹名——代码比上一个要长一点
set file=c:\abc\def\hij.xyz
set str=%file%
:loop
set str=%str:*\=%
echo %str% | findstr /i "\\" >nul && goto loop
echo %file% ---^> %str%
pause追问
set str=%str:*\=%
echo %str% | findstr /i "\\" >nul
这2行我看不懂, 尤其是第一行,一点一点往后剥的?
:top
echo 请把要提取文件名的文件拖放到此处
set /p file=
for /f "delims=" %%i in ("%file:"=%") do set filename=%%~nxi
echo 文件名为:"%filename%"
pause>nul&cls&goto top
================================================
我经过测试,可以实现一般路径,路径含有空格,文件名含有空格,和文件名含有特殊字符的处理
都可以完美提取出文件名
1,普通路径
请把要提取文件名的文件拖放到此处
D:\OTHER\Bench32.exe
文件名为:"Bench32.exe"
2,路由含有空格
请把要提取文件名的文件拖放到此处
"C:\Documents and Settings\Administrator\桌面\IMG_3985.JPG"
文件名为:"IMG_3985.JPG"
3,文件名含有空格
请把要提取文件名的文件拖放到此处
C:\Documents and Settings\Administrator\桌面\IMG 3983.JPG"
文件名为:"IMG 3983.JPG"
4,文件名含有特殊字符
请把要提取文件名的文件拖放到此处
C:\Documents and Settings\Administrator\桌面\IMG_&3984.JPG"
文件名为:"IMG_&3984.JPG" 参考技术D 我来吧,代码:
@echo off
:top
echo 请把要提取文件名的文件拖放到此处
set /p file=
for /f "delims=" %%i in ("%file:"=%") do set filename=%%~nxi
echo 文件名为:"%filename%"
pause>nul&cls&goto top
=========================================================
无论路径中是否包含空格,还是最终文件名中包含空格,还有最终文件名中包含&都可以完美提取,见如下。
测试结果:
1,普通路径无空格的:
请把要提取文件名的文件拖放到此处
D:\OTHER\Bench32.exe
文件名为:"Bench32.exe"
2,路径有空格的:
请把要提取文件名的文件拖放到此处
C:\Documents and Settings\Administrator\桌面\22.gif"
文件名为:"22.gif"
3,文件名中包含空格字符的:
请把要提取文件名的文件拖放到此处
C:\Documents and Settings\Administrator\桌面\IMG 3983.JPG"
文件名为:"IMG 3983.JPG"
4,文件名中包含&特殊字符的
请把要提取文件名的文件拖放到此处
C:\Documents and Settings\Administrator\桌面\IMG_&3984.JPG"
文件名为:"IMG_&3984.JPG"
以上四种常见情况都能完全提取。
windows下如何用cmd命令解压指定的zip文件到指定目录下
"c:\Program Files\WinRAR\winrar.exe" x d:\aa.zip d:\abc 这个命令试过,不行。最好是不要安装软件的。系统自带的命令最好,expand命令也试过,好像只能解压makecab压缩的
这个是用winrar解压提示的错误
我自己解决了,是找不到abc这个文件夹
复制RAR.exe和UNRAR复制到c:\\windows文件夹中。
按win+r,输入cmd,点击确定。
提示符后输入:unrar e 压缩文件路径\\名称 解压后路径,如下图:
效果如下图:
拓展回答:
实用命令:
命令m 表示移动(压缩后,删除源文件)。
命令a 表示添加压缩。
命令s 表示创建自解压文件。
实用开关:
-r 含子文件夹。
-ai 忽略文件属性。
-cl 文件名小写。
-cu 文件名大写。
-ed 忽略空文件夹。
-ep 忽略路径信息。
-ep1 表示忽略被压缩的根文件夹。
-ep2 包含最完整路径信息(除驱动器)。
-df 表示压缩后删除源文件。
-dr 删除源文件到回收站。
-or 自动重命名同名文件,例如filename.txt filename(1).txt filename(2).txt。
1、按win键+R打开,或者在开始菜单选择运行。输入cmd,然后确定。
2、确定后,可以看到命令符界面。默认位置是在Windows登录的用户下面。
3、输入“D:”,然后回车,进入D盘根目录下面。
4、使用cd命令,进入test文件夹下面。输入“cd test”,然后回车。可以看到已经在test文件夹下面。
5、可以使用dir命令,查看当然文件夹下面的所有文件。可以看到我们要删除的ac文件。
6、使用del命令删除文件,输入“del ac.contact”(.contact是文件后缀名,后缀不能少),然后回车,ac文件已经删除。
注意事项:
通过CMD命令进入命令提示符窗口,则将会显示 Windows的版本和版权信息。通过使用CMD命令可以很方便地进入其他子应用程序。CMD是一个32位的命令行程序,运行在 Windows nt2000XP上。
参考技术B 1、运行“CMD”,打开DOS控制台2、压缩目录test及其子目录的文件内容
Wzzip test.zip test –r -P
WINRAR A test.rar test –r
3、删除压缩包中的*.txt文件
Wzzip test.zip *.txt -d
WinRAR d test.rar *.txt
4、刷新压缩包中的文件,即添加已经存在于压缩包中但更新的文件
Wzzip test.zip test –f
Winrar f test.rar test
5、更新压缩包中的文件,即添加已经存在于压缩包中但更新的文件以及新文件
Wzzip test.zip test –u
Winrar u test.rar test
6、移动文件到压缩包,即添加文件到压缩包后再删除被压缩的文件
Wzzip test.zip –r –P –m
Winrar m test.rar test –r
7、添加全部 *.exe 文件到压缩文件,但排除有 a或b 开头名称的文件
Wzzip test *.exe -xf*.* -xb*.*
WinRAR a test *.exe -xf*.* -xb*.*
8、加密码进行压缩
Wzzip test.zip test –s123。注意密码是大小写敏感的。在图形界面下打开带密码的压缩文件,会看到+号标记。
9、WINRAR A test.rar test –p123 –r。注意密码是大小写敏感的。在图形界面下打开带密码的压缩文件,会看到*号标记。
10、按名字排序、以简要方式列表显示压缩包文件
Wzzip test.zip -vbn
Rar l test.rar
11、锁定压缩包,即防止未来对压缩包的任何修改
无对应命令
Winrar k test.rar
12、创建360kb大小的分卷压缩包
无对应命令
Winrar a –v360 test
13、带子目录信息解压缩文件
Wzunzip test -d
Winrar x test -r
14、不带子目录信息解压缩文件
Wzunzip test
Winrar e test
15、解压缩文件到指定目录,如果目录不存在,自动创建
Wzunzip test newfolder
Winrar x test newfolder
16、解压缩文件并确认覆盖文件
Wzunzip test -y
Winrar x test –y
17、解压缩特定文件
Wzunzip test *.txt
Winrar x test *.txt
18、解压缩现有文件的更新文件
Wzunzip test –f
Winrar x test –f
19、解压缩现有文件的更新文件及新文件
Wzunzip test -n
Winrar x test -u
20、批量解压缩文件
Wzunzip *.zip
WinRAR e *.rar 参考技术C 首先,我们打开命令行。
点击Windows开始菜单,所有程序,附件,命令提示符,
右击图标,点击“以管理员身份运行”(防止命令行权限不够无法执行)
或者按下快捷键Windows+R
输入cmd
回车确定。
在命令行中,输入
WinRAR m -r -ep1 压缩包保存路径 被压缩的文件(夹)路径
然后回车,就可以将被压缩的文件(夹),压缩成一个WinRAR压缩包。
注意,此命令执行后,原来被压缩的文件或者文件夹,就自动删除了!
如果不希望在得到压缩包后,删除原来的文件夹或文件,
可以使用命令
WinRAR a -r -ep1 -df 压缩包保存路径 被压缩的文件(夹)路径
这里,介绍一下这些命令的含义。
WinRAR m -r -ep1 压缩包保存路径 被压缩的文件(夹)路径
等价于
WinRAR a -r -ep1 -df 压缩包保存路径 被压缩的文件(夹)路径
实用命令:
命令m 表示移动(压缩后,删除源文件)
命令a 表示添加压缩
命令s 表示创建自解压文件
实用开关:
-r 含子文件夹
-ai 忽略文件属性
-cl 文件名小写
-cu 文件名大写
-ed 忽略空文件夹
-ep 忽略路径信息
-ep1 表示忽略被压缩的根文件夹
-ep2 包含最完整路径信息(除驱动器)
-df 表示压缩后删除源文件
-dr 删除源文件到回收站
-or 自动重命名同名文件,例如filename.txt filename(1).txt filename(2).txt
下面,我们来看如何使用命令行解压缩文件。
WinRAR x 压缩包路径 解压缩到目标文件夹的路径
解压缩保留路径
WinRAR e 压缩包路径 解压缩到目标文件夹的路径
解压缩忽略路径
忽略路径的意思,就是解压缩时,压缩包原来里面有文件夹的,
解压缩之后,只能得到所有文件,而文件夹没了。
当然,WinRAR的命令行功能,不仅仅支持这么多。有兴趣的,可以打开官方帮助文档详细研读。这里就不再赘述了。
最后,我们来分享一下,如何使用VB(或者VBA)中的Shell命令,来运行WinRAR的命令行,这有助于我们编写程序批量执行一些解压缩或者压缩文件的任务。
如果通过Shell执行,其中“WinRAR”要改为WinRAR安装文件的绝对路径,而在CMD(开始->运行 ->命令提示符)中不需改。
WinRAR安装的绝对路径,一般是(绝对路径中含空格,需要使用双引号引起来):
【Win7系统】"C:\Program Files (x86)\WinRAR\WinRAR.exe"
【Win XP系统】"C:\Program Files\WinRAR\WinRAR.exe"
举个VBA中使用Shell命令示例:
Shell "C:\Program Files (x86)\WinRAR\WinRAR.exe a 压缩包保存路径 被压缩的文件(夹)路径" 参考技术D 有时候有些顽固的文件或者文件夹我们总是让你删除不掉,不要着急其实Win7系统自带的CMD命令就可以很好的解决这个问题,下面小编就为你介绍一下windows7下如何用CMD命令复制和删除文件夹。
如果我要把f盘的file文件夹复制到c盘根目录,如何用cmd命令实现呢?很简单:
xcopy f:file c:file /e
如果要删除呢?也简单:假设删除d盘下的123文件夹
del/s/q d:123*.* ----(用于删除文件夹下的子文件)
rd/s/q d:123 ----(用于删除文件夹)
/s参数为子目录
/q参数为不用确认
删除文件用的是del命令,那么,是不是像ren命令通吃文件和文件夹一样,del是不是也可以删除文件夹呢?
答案是否定的,因为删除文件夹必须使用rd命令,这叫术业有专攻^_^。
rd的另外一个写法是rmdir,源自ReMakeDirectory。使用的方法也很简单:rd 文件夹名 即可,例如:rd test。它支持带路径的文件夹名,例如:rd d:test。
有时候,rd并不能很好地完成任务:你让它删除test文件夹,它却傲慢地向你翻白眼:目录不是空的。不过,这也不能怨它偷懒不干活,只是它的脾气有点怪:如果要删除的文件夹下面还有子文件,你得给rd戴顶高帽,加个 /s 参数,它才会高高兴兴地帮你做事,所以,正确的写法是:rd /s test。
如果你是个彻头彻尾的懒鬼,光是使用 rd /s test ,可能还是对它不甚满意,因为当你在删除带子文件的文件夹的时候,CMD总是不识时务地停下来,殷勤地问你:是否确认(Y/N)?非得等你输个字符敲下回车不可。命苦不能怨政府,点背不能怨社会,谁叫rd有那么大的威力呢,它一旦耍起流氓来,那是谁也拦不住的——rd有风险,删除须谨慎啊。好在微软对那些对删除十分有把握而又懒得要命的家伙体贴入微,提供了一个十分方便的参数 /q ,它取自quiet,官方解释为:安静模式,带 /S 删除目录树时不要求确认。这次再试试:rd /q /s test,真个是:弹指一挥间,灰飞烟灭,是不是有眼不见心不烦的酣畅感?
以上是关于如何用CMD提取一个文件路径的文件名?并赋值 高分送上的主要内容,如果未能解决你的问题,请参考以下文章