基本上,我想使用type
命令,但我无法提供实际路径。 目前我的尝试是
type "./TESTS/Test1.txt"
但我假设由于它是相对路径,因此它不起作用。 我在copy
和xcopy
上遇到了同样的问题.
我一直无法解决这个问题或在网上找到任何东西。 有没有办法做到这一点?
编辑: 澄清一下,我正在尝试获取我的.bat文件,读取位于子文件夹中的.txt文件的内容(意味着子文件夹和.bat文件位于同一文件夹中(,并将其打印到控制台。
由于您现在已经编辑了您的问题,但似乎没有对我之前的评论提供反馈,因此这里是答案。
Windows及其命令解释器,cmd.exe
使用反斜杠作为其路径分隔符。
尽管许多命令似乎可以互换地接受正斜杠,但Type
不是其中之一。
此外,.
仅相对于当前工作目录,并且在cmd.exe
中是不必要的,尽管有效。
因此,以下内容应按预期工作:
Type TESTSTest1.txt
Type "TESTSTest1.txt"
Type .TESTSTest1.txt
Type ".TESTSTest1.txt"
如果在批处理文件中接收到带有正斜杠的位置,则可以将其设置为变量,然后展开该变量,将正斜杠替换为反斜杠:
Set "Variable=./TESTS/Test1.txt"
Type "%Variable:/=%"
根据我们看不到的代码,可能需要先导航到批处理文件目录,因为在调用这些命令时它可能不一定是当前工作目录。
为此,请使用:
CD /D "%~dp0"
%~dp0
提供了批处理文件所在的文件夹(包括最后((当然只能在批处理文件中工作(。所以:
type "%~dp0Testtest1.txt"
正是您想要的:<folder_where_my_batchfile_is><subfolder_Test><File_test1.txt>
独立于您的"工作文件夹"(批处理文件可能cd
或pushd
到(。
使用%CD%
它基本上不是可以工作的吗?比如,TYPE "%CD%/Subfolder/Test1.txt"
?%CD%
是"当前目录"的 windows 变量,应设置为批处理文件正在处理的任何目录,并且由于您尝试访问同一目录中的文件夹,因此应该可以工作。但是,您的问题非常不清楚,我希望我没有误解。