带循环的批处理文件for-loop:不转发参数,包括空格

时间:2017-03-20 17:56:02

标签: batch-file cmd parameter-passing

我的问题是我的批处理脚本中的for循环是从“allepdfsnamen.txt”读取pdf文件路径,但是没有正确地将这些文件路径(包括空格字符)转发到子例程:

enter image description here

  • %% X是可以包含空格的参数(pdf-file-path) 例如“C:\ Users \ gruberw \ Documents_OT_Tickets \ 20170320_I \ Testpdfs \ Scan Charge 31 \ 0000000_134388_266737109_001.PDF”
  • %1:body(子程序)仅接收文件路径,直到第一个空格字符出现 enter image description here


我试图将“allepdfsnamen.txt”中提供给for循环的路径放在双引号下:

enter image description here

我试图将给定的参数:body(%% X)放在引号下。

有谁能告诉我如何正确(用空格字符完成文件路径)将参数交给一个subrutine(:body)?

1 个答案:

答案 0 :(得分:2)

最好剪切和粘贴,以便轻松复制和运行。

for /f "delims=" %%x 

使用空格分隔符关闭默认标记。

call :body "%%x"

引用要传递给子例程的字符串

echo %~1

从第一个参数

中删除引号