我创建了一个批处理文件(假设batch1),它位于一个文件夹中(假设文件夹为A)并被编程为启动另一个批处理(假设为batch2),它位于另一个目录中(假设文件夹为B)。 Batch2被编程为提取文件(假设xyz.tar,它位于文件夹A和B中)。但是当我启动batch1时它会启动batch2,但batch2会提取文件夹A中的文件而不是B中。下面的示例可以帮助您理解。
这是我的批处理文件。
:: batch1
ECHO This is batch1
"D:\folder B\batch2.bat"
:: batch2
ECHO This is batch2
7z.exe x xyz.tar >nul
文件夹A包含batch1.bat和xyz.tar。
文件夹B包含batch2.bat和xyz.tar。
batch2启动但它开始提取文件夹A中的文件,但它应该提取文件夹B中的xyz.tar。
答案 0 :(得分:2)
在您的@echo off/setlocal
尝试
cd /d "%~dp0"
答案 1 :(得分:1)
我认为您必须更改工作文件夹才能在正确的位置提取。
尝试类似:
cd "d:\folder B"
batch2.bat