在cmd提示符

时间:2017-03-21 09:30:45

标签: perl batch-file cmd

我有两个文件:

  • perl文件“Test.pl”位于“C:\ A1 \ A11 \ A12 \ A13 \ A14 \ A15”
  • 在loc上的bat文件“TestBatch.bat”:“C:\ A1 \ A11 \ A12 \ A13 \ B14”

perl文件“Test.pl”调用批处理文件“TestBatch.bat”然后批处理文件应该尝试将当前路径设置为“C:\ A1 \ A11 \”并更改目录到“C:\ A1 \ A11 \ A12 \ A13 \ B14”

但它没有说“系统找不到指定的路径”。我希望它将目录更改为“C:\ A1 \ A11 \ A12 \ A13 \ B14”

以下是两个文件的代码

Test.pl

my $abs_bat_file_loc = "C:\\A1\\A11\\A12\\A13\\B14\\TestBatch.bat";
system ($abs_bat_file_loc);

TestBatch.bat

set current_path=%CD%\..\..\..\..\
cd A12\A13\B14

注意:我通过以下方式在cmd提示符下运行了perl文件:

cd C:\A1\A11\A12\A13\A14\A15
perl Test.pl

非常感谢任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分:0)

而不是

set current_path=%CD%\..\..\..\..\ cd A12\A13\B14

为什么不用

替换它

PushD %~dp0

这将强制批处理文件中的工作目录成为批处理文件所在位置的完整位置(例如; C:\ A1 \ A11 \ A12 \ A13 \ B14)