标题: [文件操作] 批处理命令求助-抓取文件名, 并让另外一个程序调用 [打印本页]
作者: lrf980 时间: 2012-12-1 12:02 标题: 批处理命令求助-抓取文件名, 并让另外一个程序调用
我需要用一个命令处理某个目录下几千个文件. 首先给每个文件生成名字相同的一个目录,同时将该命令处理文件的结果保存到生成的目录中.
我的命令是"C:\vina\vina.exe" --config --ligand *(此处*就是我处理的文件名).pdbqt --out */out.pdbqt --log */log.txt
我尝试写了一个,但是不成功.
@echo off
FOR %%a IN (*.pdbqt) Do (
Set B=%%a~na
MKDIR B
"C:\vina\vina.exe" --config conf.txt --ligand B.pdbqt --out B/out.pdbqt --log B/log.txt
)
不知道问题出在哪,总是不成功.
作者: lrf980 时间: 2012-12-1 19:26
搞定,花了一个下午在网上查,然后改。最后出来这样的。
@echo off&setlocal enabledelayedexpansion
FOR %%i IN (*.pdbqt) DO (
set b=%%~ni
echo !b!
MKDIR !b!
"C:\vina\vina.exe" --config conf.txt --ligand !b!.pdbqt --out !b!/out.pdbqt --log !b!/log.txt
)
作者: BAT-VBS 时间: 2012-12-1 20:49
回复 2# lrf980
你找个文件名包含空格的测试一下
作者: lrf980 时间: 2012-12-2 10:56
还没有机会试,因为我的文件里面没有空格。不知道是不是哪里有问题,麻烦指教。谢谢。
作者: BAT-VBS 时间: 2012-12-2 10:59
回复 4# lrf980
随便找个有空格的文件名试试就知道了
作者: lrf980 时间: 2012-12-2 20:18
本帖最后由 lrf980 于 2012-12-2 20:31 编辑
回复 5# BAT-VBS
试了. 不能抓全文件名,只有空格前面的信息, 应该如何改呢?
作者: BAT-VBS 时间: 2012-12-2 20:34
回复 6# lrf980 - @echo off
- setlocal enabledelayedexpansion
- for %%i in (*.pdbqt) do (
- set "b=%%~ni"
- echo "!b!"
- mkdir "!b!"
- "C:\vina\vina.exe" --config conf.txt --ligand "!b!.pdbqt" --out "!b!/out.pdbqt" --log "!b!/log.txt"
- )
复制代码
试试
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |