从BATCH中的.txt文件中读取,而不使用文字路径

时间:2018-06-13 15:29:44

标签: batch-file path

基本上,我想使用 INSERT IGNORE INTO table_name (column1, column2, column3, ...)... Your SELECT QUERY 命令,但我无法提供实际路径。 目前我的尝试是

type

但我假设因为它是相对路径,所以它不起作用。 我与type "./TESTS/Test1.txt" copy遇到了同样的问题。

我无法解决此问题或在网上找到任何内容。 有没有办法做到这一点?

编辑: 为了澄清,我试图获取我的.bat文件,以读取位于子文件夹中的.txt文件的内容(意味着子文件夹和.bat文件位于同一文件夹中),并将其打印到控制台。 / p>

3 个答案:

答案 0 :(得分:0)

既然你现在已经编辑了你的问题,但似乎没有提供我之前评论的反馈,这里就是答案。

Windows及其命令解释程序cmd.exe使用反斜杠 \ 作为其路径分隔符。

虽然许多命令似乎可以互换地接受正斜杠,但Type不是其中之一。

此外 .\ 仅与当前工作目录相关,并且cmd.exe中不需要,虽然有效

因此,以下内容应如您所愿:

Type TESTS\Test1.txt
Type "TESTS\Test1.txt"
Type .\TESTS\Test1.txt
Type ".\TESTS\Test1.txt"

如果正在使用正斜杠接收批处理文件中正在使用的位置,则可以将其设置为变量,然后展开该变量,用正斜杠代替反斜杠:

Set "Variable=./TESTS/Test1.txt"
Type "%Variable:/=\%"

根据我们看不到的代码,可能有必要先导航到批处理文件目录,因为在调用这些命令时它可能不一定是当前的工作目录

要做到这一点:

CD /D "%~dp0"

答案 1 :(得分:0)

%~dp0提供了批处理文件所在的文件夹(包括最后一个\)(当然只能在批处理文件中使用)。所以:

type "%~dp0Test\test1.txt"

正是您想要的:<folder_where_my_batchfile_is\><subfolder_Test>\<File_test1.txt>
独立于你的&#34;工作文件夹&#34; (批处理文件可能包含cdpushd)。

答案 2 :(得分:0)

使用%CD%基本上不行吗?比如,TYPE "%CD%/Subfolder/Test1.txt"%CD%是“当前目录”的Windows变量,应该设置为批处理文件正在工作的任何目录,并且因为您尝试访问同一目录中的文件夹,这应该有效。然而,你的问题还不清楚,我希望我不会误解。