如何使用批处理解析和回显多个文件路径

时间:2018-05-09 06:00:36

标签: batch-file

我创建了一个批处理文件,用于回显或打印文件的路径。显然,当我将多个文件作为参数发送到所述批处理文件时,我无法打印路径。

final val MaxValue: Int(2147483647)
    The largest value representable as a Int.

非常感谢任何帮助。如果有任何不清楚的地方,请告诉我。感谢。

注意:我使用以下步骤将文件发送到批处理文件:

  • 右键单击文件
  • 发送至
  • 选择我在sendTo中创建的将文件传递到批处理文件的菜单项

我不知道这些信息是否有帮助,但我不想将其排除在我的问题之外。

1 个答案:

答案 0 :(得分:1)

%*将捕获由空格分隔的每个输入字符串,enabledelayedexpansion应该在代码块()内部使用set。我们还附上​​变量,包括带双引号的变量名:

@echo off
setlocal enabledelayedexpansion
for %%a in (%*) do (
 set "string=%%~a"
 set "string=!string:\=%%5C!"
 echo !string! >> D:\Playground\test.txt
)

如您所见,您需要使用for循环来迭代每个输入字符串,例如%1 %2%3等。

作为旁注您还可以将文件拖放到批处理文件中以获得结果。

修改

根据请求添加了引用删除set "string=!string:"=!"但请注意,如果路径包含空格,将字符串用作路径而不引用它们将导致将来出现问题。

要管道转到没有换行符的文件:

@echo off
setlocal enabledelayedexpansion
for %%a in (%*) do (
 set "string=%%~a"
 set "string=!string:\=%%5C!"
 echo|set /p="!string! " >> D:\Playground\test.txt
)