我如何将文件目录(路径)作为参数传递?

我如何将文件目录(路径)作为参数传递?

我如何将文件目录(路径)作为参数传递给

  1. Windows操作系统中的批处理文件
  2. unix操作系统中的.bash文件

答案1

要将目录传递给 Windows 批处理文件,请将其放在批处理文件的命令行上。使用路径时,最好在路径周围加上“”,因为它们可能包含空格等,例如

c:\temp\batchfile.bat "c:\program files"

在批处理文件中引用命令行参数的使用%1 %2等等。

例如如果你有一个简单的批处理文件(c:\temp\b.bat)像这样

dir %1
exit /b 3

并且按照上面的方式调用它,你会得到 c:\program files 的目录列表。

我现在猜测您想要做的是将 Windows 路径传递给 Unix 脚本,然后让 Unix 脚本在 Windows 上运行批处理文件,并将提供的 Windows 路径传递给 Windows 批处理文件。

与 Windows 类似,您可以在命令行上将参数传递给 bash 脚本。您需要将路径括在“”中。bash 将尝试解释命令行参数中的任何特殊字符,因此您也需要将路径参数括在“”中,例如

bashscript '"c:\program files"'

要引用 bash 中的命令行参数,请使用$1 $2等等。

如果你的 bash 脚本是

#!/bin/bash
ssh -l admin host 'cmd /c c:/temp/b.bat ' $1

那么你将获得 c:\program files 的目录列表,并且 3 将返回到 $?。

相关内容