我想以递归方式从根文件夹运行命令,这会影响该根文件夹下具有特定扩展名的所有文件。
这是命令
blender b03.blend --background --python myScript.py
我想为每个扩展名为.blend的文件运行此命令,而不是b03.blend文件。
答案 0 :(得分:2)
尝试:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class jump : MonoBehaviour {
private Rigidbody rb;
private float initialPos = 0.5f ;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
//Debug.Log(rb.velocity.magnitude);
if (Input.GetKeyDown(KeyCode.Space))
{
rb.velocity = new Vector3(0f , 1f , 0f) * 10 ;
Debug.Log(rb.velocity);
}
if (rb.velocity.y > 0 && !Input.GetKey(KeyCode.Space))
{
float dis = rb.transform.position.y - initialPos;
Debug.Log(dis);
rb.velocity += new Vector3(0f, 1f, 0f) * Physics.gravity.y;
//Debug.Log(rb.velocity);
//Debug.Log("I am here");
//rb.velocity = Vector3.zero;
}
}
private void OnCollisionEnter(Collision collision)
{
rb.velocity = Vector3.zero;
Debug.Log(rb.velocity);
Debug.Log("...........................Collision " + gameObject.name);
}
}
说明:
find . -name '*.blend' -exec blender {} --background --python myScript.py \;
任何与find
匹配的文件 - 使用单引号非常重要,这样您的shell就不会为当前目录中的任何文件展开它*.blend
。 blender {} --background --python myScript.py
将替换为文件名,例如{}
。some/sub/tree/file.blend
将终止\;
语句。 -exec
用于转义\
,因此shell不会吸收它并将该行拆分为多个命令。;
的所有实例都将从初始工作目录运行,因此blender
必须能够正确处理不在“此处”的文件,并且同等地访问blender
这不是myScript.py
文件的邻居。 注意:我不熟悉*.blend
,但是如果它会进入后台并花一些时间来处理(由于blend
),那么你可能会压倒你的机器......你可能更喜欢一次处理一个文件,或者可能将工作分成几个可以连续运行的独立工作(每个项目完成)......奖励积分看起来像{ {1}}可以在处理限制时轻松运行并发操作(例如:--background
一次最多可运行make
个命令。)