标题: [文本处理] 批处理如何获取指定文件的文件名(名称)? [打印本页]
作者: 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- for /f "delims=" %%a in ('dir /b /a-d /oN "%FolderName%\*.txt"') do (
- set d=%%a
- set c=!d:~0,-4!
- echo !c!
- )
复制代码
现在多增加了几个txt文件,怎么才能拿到1.0.0.0。这个文件会变动。有时候会是1.0.0.1,2.0.0.0
作者: flyinnet9 时间: 2016-3-1 14:31
- for /f "delims=" %%a in ('dir /b /a-d /oN "%FolderName%\*.txt"') do if not defined d set d=%%~na
- 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 |