将路径 parameter/variable 从批处理文件传递到 python,sys.argv[] 只给出最后一个目录而不是整个字符串

passing path parameter/variable from batch file to python, sys.argv[] ony gives last dir and not the whole string

我为 windows 终端创建了自定义命令 scan。我的目标是自动将我的扫描移动到某个目录。我将对我的路径进行硬编码,但如果我想将我的扫描移动到不同的目录,我已经包含了一个参数 2(参数 1 是“开始”以执行)。我的批处理文件将路径作为字符串传递给我的 python 脚本。

我知道这个是因为当我写的时候

scan start "C:/path/to/target/dir/"

进入我的 windows 终端,它向 运行 我的脚本输出以下内容。

python "C:\Users\MY USERNAME\my_scripts\scan.py" start C:/path/to/target/dir/

不幸的是,我无法使用以下代码“读取”整个路径:

print(Path(sys.argv[2]).stem)

在这种情况下,结果是 dir

print(Path(sys.argv[0]).stem) = scan

print(Path(sys.argv[1]).stem) = start

print(Path(sys.argv[2]).stem) = dir

为什么我获取不到完整路径,如何获取?我想要这样的东西:

print(Path(sys.argv[2]).stem) = C:/path/to/target/dir/

您确实在阅读整个路径。但是你正在阻止它,缩短为 dir。使用以下

print(Path(sys.argv[1]))