找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27056|回复: 12

[文本处理] 批处理如何获取指定文件的文件名(名称)?

[复制链接]
发表于 2016-3-1 14:20:26 | 显示全部楼层 |阅读模式
我的a.test.com目录下面有ll.txt p.txt,1.0.0.0.txt
以前的这个目录只有1.0.0.0.txt,用以下代码可以提取到1.0.0.0
  1. for /f "delims=" %%a in ('dir /b /a-d /oN "%FolderName%\*.txt"') do (
  2. set d=%%a
  3. set c=!d:~0,-4!
  4. echo !c!
  5. )
复制代码
现在多增加了几个txt文件,怎么才能拿到1.0.0.0。这个文件会变动。有时候会是1.0.0.1,2.0.0.0

评分

参与人数 1PB -4 收起 理由
pcl_test -4 未按版规发帖

查看全部评分

发表于 2016-3-1 14:31:00 | 显示全部楼层
  1. for /f "delims=" %%a in ('dir /b /a-d /oN "%FolderName%\*.txt"') do if not defined d set d=%%~na
  2. echo.%d%
复制代码
 楼主| 发表于 2016-3-1 14:35:35 | 显示全部楼层
回复 2# flyinnet9


    谢谢你啊!根据目前的我的需求,这样写出来可以实现,我在测试一下,谢谢,3QS
 楼主| 发表于 2016-3-1 14:47:14 | 显示全部楼层
回复  flyinnet9


    谢谢你啊!根据目前的我的需求,这样写出来可以实现,我在测试一下,谢谢,3QS
xxlaila 发表于 2016-3-1 14:35



    测试发现,按照这样写的话,我下面的代码不能执行了,比如这个打包的
echo.---------正在备份网站到-----------------------
set test=a.test.com
7z.exe a %PathName%\%test%\BackUp\"%report%%d%".7z %PathName%\%test%\WebRoot\*
发表于 2016-3-1 14:59:46 | 显示全部楼层
回复 4# xxlaila


    没看出来和我的脚本有啥关联,发完整脚本看看
发表于 2016-3-1 15:04:32 | 显示全部楼层
回复 4# xxlaila


   引号打的有问题吧?

7z.exe a "%PathName%\%test%\BackUp\%report%%d%.7z"
 楼主| 发表于 2016-3-1 15:07:02 | 显示全部楼层
回复 5# flyinnet9


   @echo off
Setlocal Enabledelayedexpansion
echo.
set FolderName=D:\WwwRoot\a.test.com\WebRoot
for /f "delims=" %%a in ('dir /b /a-d /oN "%FolderName%\*.txt"') do if not defined d set d=%%~na
set c=%d%
echo %c%
echo.
set test=a.test.com
7z.exe a %PathName%\%test%\BackUp\"%test%%c%".7z %PathName%\%test%\WebRoot\*

这就是我测试的,在提取到1.0.0.0了以后就暂停了,按任意键就退出了
 楼主| 发表于 2016-3-1 15:07:47 | 显示全部楼层
回复 6# flyinnet9


    这引号没有问题,现在就在用
发表于 2016-3-1 15:09:27 | 显示全部楼层
set c=%d%
echo %c%
以上不需要
7z.exe a %PathName%\%test%\BackUp\"%test%%d%".7z %PathName%\%test%\WebRoot\*
 楼主| 发表于 2016-3-1 15:12:18 | 显示全部楼层
回复 9# flyinnet9


    那个是我自己加的,加上的话我就修改那一个地方,其他地方就不需要修改了。我测试,好像又可以了,我在多测试几下,谢谢你啊
发表于 2016-3-1 15:14:27 | 显示全部楼层
%PathName%这个变量哪来的?

你还是去掉echo off然后将运行结果发上来看看吧

评分

参与人数 1技术 +1 收起 理由
xxlaila + 1 谢谢

查看全部评分

 楼主| 发表于 2016-3-1 15:18:58 | 显示全部楼层
回复 11# flyinnet9


    可以了!没有问题了,我测试了 七八次了,在正式服也跑了,
问一下你这个什么意思啊,do if not defined d set d=%%~na
发表于 2016-3-1 16:45:16 | 显示全部楼层
本帖最后由 flyinnet9 于 2016-3-1 16:53 编辑

回复 12# xxlaila


    如果没有定义变量d,就把排序后的第一个文件名赋值给d
dir /on排序后第一个文件就是1.0.0.0.txt
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 00:18 , Processed in 0.021599 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表