Board logo

标题: [文本处理] 批处理如何获取指定文件的文件名(名称)? [打印本页]

作者: xxlaila    时间: 2016-3-1 14:20     标题: 批处理如何获取指定文件的文件名(名称)?

我的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
作者: flyinnet9    时间: 2016-3-1 14:31

  1. for /f "delims=" %%a in ('dir /b /a-d /oN "%FolderName%\*.txt"') do if not defined d set d=%%~na
  2. echo.%d%
复制代码

作者: xxlaila    时间: 2016-3-1 14:35

回复 2# flyinnet9


    谢谢你啊!根据目前的我的需求,这样写出来可以实现,我在测试一下,谢谢,3QS
作者: xxlaila    时间: 2016-3-1 14:47

回复  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\*
作者: flyinnet9    时间: 2016-3-1 14:59

回复 4# xxlaila


    没看出来和我的脚本有啥关联,发完整脚本看看
作者: flyinnet9    时间: 2016-3-1 15:04

回复 4# xxlaila


   引号打的有问题吧?

7z.exe a "%PathName%\%test%\BackUp\%report%%d%.7z"
作者: xxlaila    时间: 2016-3-1 15:07

回复 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了以后就暂停了,按任意键就退出了
作者: xxlaila    时间: 2016-3-1 15:07

回复 6# flyinnet9


    这引号没有问题,现在就在用
作者: flyinnet9    时间: 2016-3-1 15:09

set c=%d%
echo %c%
以上不需要
7z.exe a %PathName%\%test%\BackUp\"%test%%d%".7z %PathName%\%test%\WebRoot\*
作者: xxlaila    时间: 2016-3-1 15:12

回复 9# flyinnet9


    那个是我自己加的,加上的话我就修改那一个地方,其他地方就不需要修改了。我测试,好像又可以了,我在多测试几下,谢谢你啊
作者: flyinnet9    时间: 2016-3-1 15:14

%PathName%这个变量哪来的?

你还是去掉echo off然后将运行结果发上来看看吧
作者: xxlaila    时间: 2016-3-1 15:18

回复 11# flyinnet9


    可以了!没有问题了,我测试了 七八次了,在正式服也跑了,
问一下你这个什么意思啊,do if not defined d set d=%%~na
作者: flyinnet9    时间: 2016-3-1 16:45

本帖最后由 flyinnet9 于 2016-3-1 16:53 编辑

回复 12# xxlaila


    如果没有定义变量d,就把排序后的第一个文件名赋值给d
dir /on排序后第一个文件就是1.0.0.0.txt




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2