2017-05-30 63 views
1

我在C:\Projects\FileServer\Scripts\A.bat文件夹和文本文件中有一个批处理文件C:\Projects\FileServer\B.txt。我想将B.txt第一行读入我的批处理文件中的一个变量,该变量将从C:\Projects\FileServer\Scripts位置执行。当两个文件都在不同的目录中时,寻找将文本文件读入批处理文件

下面我试过,但没有工作 - 无法找到txt文件

set /p fileserver=< B.txt 
echo %fileserver% 

set folder=%fileserver%\TestData 
if not exist "%folder%" mkdir %folder% 
+2

你需要照顾潜在的问题,养成使用双引号的习惯。 **'Set/P“fileserver =”<“.. \ B.txt”**,**'设置“文件夹=%fileserver%\ TestData”**和**'如果不存在“%文件夹% \“MD”%folder%“'** – Compo

+0

'<”%〜dp0 .. \ B.txt“set/P fileserver =”“'should work('%〜dp0' points to the directory directory with the script with a尾随'\';'''去一个目录级别)... – aschipfl

+0

它工作得很好,如果我们必须去一个级别。如果在其他机器或其他驱动器中提供完整路径,则无法工作。有些东西 - Set/P“fileserver =”<“D:\ MyData \ B.txt”或Set/P“fileserver =”<“\\ 192.10.10.1 \ MyData \ B.txt”??? –

回答

0

这似乎是一个错误的道路。 试试这个:

set /p fileserver=< ..\B.txt 
+0

当前工作目录不一定是包含批处理脚本的目录... – aschipfl

+0

如果我们必须升级一级,它工作得很好。如果在其他机器或其他驱动器中提供完整路径,则无法工作。有些东西 - Set/P“fileserver =”<“D:\ MyData \ B.txt”或Set/P“fileserver =”<“\\ 192.10.10.1 \ MyData \ B.txt”??? –

+0

你使用所有这些双引号? 'Set/P“fileserver =”<“D:\ MyData \ B.txt”' 尝试删除所有像这样的双引号: 'set/p fileserve =

相关问题