【问题标题】:Handle files into sub-folders having the same parent in batch将文件批量处理到具有相同父级的子文件夹中
【发布时间】:2013-04-15 18:52:27
【问题描述】:

我运行路径为 D:\path\to\my\data 的 mybat.bat。

“data”文件夹,即我的当前目录,包含两个文件夹,即“data1”和“data2”。 data1 包含 file1.txt 并且 data2 还包含 file1 具有另一个扩展文件名 (file1.out)

我在当前目录数据所在 mybat.bat 正在运行。

我会将“file1.txt”和“file1.out”传递给“tamo.bat”,因为知道“tamo.bat”与“mybat.bat”是同一个目录(“data”目录) .

这是我写的,但它不起作用!

  SET mypath=%~dp0
  set var=file1
  set getTXTBySubPath=%mypath%data1\%var%.txt
  echo -----getTXTBySubPath-----

  set getOUTBySubPath=%mypath%data2\%var%.out
  Call tamo.bat %getTXTBySubPath% %getOUTBySubPath%

请问我怎样才能做到这一点? 谢谢!

【问题讨论】:

  • “它不起作用”是什么意思?有错误信息吗? tamo.bat 没有得到您期望的值吗? (它得到什么值?)如果这不是您的真实代码的样子,请编辑您的问题以修复代码中的var1/%var% 错字。

标签: batch-file path


【解决方案1】:

用更多的双引号试试这个:

SET "mypath=%~dp0"

set "var=file1"
set "getTXTBySubPath=%mypath%data1\%var%.txt"
echo -----getTXTBySubPath-----

set "getOUTBySubPath=%mypath%data2\%var%.out"
Call tamo.bat "%getTXTBySubPath%" "%getOUTBySubPath%"

【讨论】:

  • 让我补充一点,'tamo.bat'调用了一个vbs代码,即code.vbs,其中code.vbs的每个参数都是一个文件,第一个是“file1.txt”,第二个是来自 mybat.bat 的“file1.out” set first="%1" set second="%2" echo %first% echo %second% cscript code.vbs /x:%first% /y:%second%我认为 code.vbs 的参数会导致错误,我不知道为什么以及如何修复它。谢谢你的帮助
  • 试试这个set "first=%~1"set "second=%~2"
  • 和以前一样的错误。我不知道这是否重要,但 code.vbs 依次获得第一个参数,例如用于运行 shell 的 dim paramvbs:paramvbs=Wscript.Arguments.Named("x"):shell.run "another. bat """ & paramvbs & """ ""file.out""" 调用 'another.bat' 时没有 code.vbs 导致错误?,我不知道为什么以及如何解决它。谢谢你的帮助。
  • 我尝试用真实值测试从 tamo.bat 调用 code.vbs 就像这样 cscript code.vbs /x:"data1\my file 1.txt" /y:"data2\my file 1.out" 我注意到 paramvbs: paramvbs=Wscript.Arguments.Named("x") 用于运行 shell: shell.run "another.bat """ & paramvbs & """ ""file.out """ 导致问题,因此 shell 无法运行....
猜你喜欢
  • 1970-01-01
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
相关资源
最近更新 更多