)
我制作一个简单的批处理文件来搜索计算机名称列表,然后将配置文件复制到某个文件夹。配置文件部分很好,它让脚本看到UNC中的文本文件(我需要从中运行批处理)我遇到了问题。我使用"%~dp0"每天在网络上启动文件,但是在下面的行中,它在括号中不起作用。我希望能让这个工作增加多功能性,而不必担心没有空格的路径。
**
for / f" tokens = *" %% i in("%~dp0" hostname.txt)
**(等等等等
系统找不到文件\ DISKSTATION \ Shared folder \ Test \" hostname.txt。 (错误我得到了)
我浏览了一下并尝试使用引号的不同位置并使用单引号而不是双引号,但我没有得到它。可能是因为我对此并不了解。任何帮助都会很棒,谢谢。
答案 0 :(得分:0)
您在for
命令中以错误的方式放置了双引号,并且您需要设置选项usebackq
以避免路径中出现空格问题 - 请执行以下操作:< / p>
for /f "usebackq tokens=*" %%i in ("%~dp0hostname.txt") do
您的错误消息只显示一个前导\
,但我想应该有两个。如果在修复了第1项后问题仍然存在,您可以像"\%~dp0hostname.txt"
一样手动添加(虽然在我看来这是一个非常糟糕的解决方案......),或者您可以查看pushd /?
, - 启用命令扩展时 - 解析UNC路径。
答案 1 :(得分:0)
测试此行:我不确定%~dp0将在UNC驱动器上返回。
for /f "usebackq delims=" %%i in ("%~dp0hostname.txt") do echo "%%i"