[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理命令求助-抓取文件名, 并让另外一个程序调用

我需要用一个命令处理某个目录下几千个文件. 首先给每个文件生成名字相同的一个目录,同时将该命令处理文件的结果保存到生成的目录中.
我的命令是"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
)

不知道问题出在哪,总是不成功.

搞定,花了一个下午在网上查,然后改。最后出来这样的。

@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
)

TOP

回复 2# lrf980


    你找个文件名包含空格的测试一下

TOP

还没有机会试,因为我的文件里面没有空格。不知道是不是哪里有问题,麻烦指教。谢谢。

TOP

回复 4# lrf980


    随便找个有空格的文件名试试就知道了

TOP

本帖最后由 lrf980 于 2012-12-2 20:31 编辑

回复 5# BAT-VBS

试了. 不能抓全文件名,只有空格前面的信息, 应该如何改呢?

TOP

回复 6# lrf980
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (*.pdbqt) do (
  4.     set "b=%%~ni"
  5.     echo "!b!"
  6.     mkdir "!b!"
  7.     "C:\vina\vina.exe" --config conf.txt --ligand "!b!.pdbqt" --out "!b!/out.pdbqt" --log "!b!/log.txt"
  8. )
复制代码
试试

TOP

返回列表