如何在Windows上对每个文件递归执行python脚本

如何在Windows上对每个文件递归执行python脚本

因此,我有一个 python 命令,它将文件路径作为命令行参数。假设convert.py

在 Linux 上,我使用以下脚本以递归方式使用 glob 对文件夹中的每个文件运行它

for f in $1/**/*
do
  python ./convert.py $f
done

我可以称之为sh ./script.sh src

在 Windows 上有没有办法做到这一点?我发现虽然很接近但我还是没太明白。

答案1

一个快速的想法是使用和Get-ChildItem选项 并使用 和它的选项来执行 python 脚本并将完整的目录路径传递给它。-Directory-RecurseStart-Process-ArgumentList

1.简单脚本(用于测试特定文件夹)

$src = "C:\Folder\Path";
(Get-ChildItem $src -Directory -Recurse).FullName | % { Process {
    Start-Process Python -ArgumentList "./convert.py $($_)" } }; 

2. 带有执行参数值的 PowerShell 脚本

$src = $args[0]; 
(Get-ChildItem $src -Directory -Recurse).FullName | % { Process {
    Start-Process Python -ArgumentList "./convert.py $($_)" } };

执行上述 #2 PowerShell 脚本

powershell.exe -ExecutionPolicy Bypass -File "C:\PowerShell\PScript.ps1" "C:\Folder\123\678"

3. 再举一个例子(递归文件)

笔记:如果 Python 脚本需要传递文件路径,请使用此示例和参数-File传递文件路径。但我不确定 Python 脚本在做什么。

$src = "C:\Folder\Path";
(Get-ChildItem $src -Recurse -File).FullName | % { Process {
    Start-Process Python -ArgumentList "./convert.py $($_)" } };

支持资源

相关内容