如何在Windows10启动时运行.sh文件

时间:2019-12-19 15:57:40

标签: windows bash shell

启动Windows 10时如何运行Bash脚本?

我只能为Ubuntu感到沮丧。

谢谢。

#!/bin/bash
# Desktop PATH
Desktop=/c/Users/118883/Desktop
# folder with the script
executeFolder=Clean-up-folder-structure 


# mainfolder
sortingFolder=sorting

# inner folders
docFolder=1.word_docs
excelFolder=2.excel_docs
imageFolder=3.images

cd $Desktop

# moves all folders from desktop to a sorting folder
function moveMyFiles(){
find *  -mindepth 0 -maxdepth 0 -not -name $sortingFolder -not -name 
$executeFolder -exec mv -v -t $sortingFolder {} +
}

# Sort al the .docx files
function sortDocs(){
cd $sortingFolder
if [ -d $docFolder ]
then 
    find *.docx -mindepth 0 -maxdepth 0 -exec mv -v -t $docFolder {} +
else
    mkdir $docFolder
    find *.docx -mindepth 0 -maxdepth 0 -exec mv -v -t $docFolder {} +
fi
}

function sortExcel(){
cd $sortingFolder
if [ -d $excelFolder ]
then 
    find *.xlsx -mindepth 0 -maxdepth 0 -exec mv -v -t $excelFolder {} +
else
    mkdir $excelFolder
    find *.xlsx -mindepth 0 -maxdepth 0 -exec mv -v -t $excelFolder {} +
fi
}

function sortImages(){
cd $sortingFolder
if [ -d $imageFolder ]
then 
    find *.PNG -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
    find *.JPEG -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
    find *.jpeg -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
    find *.jpg -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
    find *.GIF -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
else
    mkdir $imageFolder
    find *.PNG -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
    find *.JPEG -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
    find *.jpeg -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
    find *.jpg -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
    find *.GIF -mindepth 0 -maxdepth 0 -exec mv -v -t $imageFolder {} +
fi
} 

#main execute 
if [ -d $sortingFolder ]
then 

cd $Desktop
moveMyFiles
sortDocs
sortExcel
sortImages

else

# zo niet maak een folder
cd $Desktop
mkdir $sortingFolder
moveMyFiles
sortDocs
sortExcel
sortImages
fi

在Powershell中运行时出现错误。 语法错误和解析错误。 像:

在线:1字符:3 +如果[-d $ sortingFolder] +〜 if语句中'if'之后缺少'('。 在第1行:5个字符 +如果[-d $ sortingFolder] +〜 “ [”后缺少类型名称。     + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException     + FullyQualifiedErrorId:缺少OpenParenthesisInIfStatement

3 个答案:

答案 0 :(得分:1)

也许有点复杂,但是可以用:您可以使用以下命令在powershell中运行

sh yourShScript

您可以将此命令放入Powershell脚本文件(例如yourScript.ps1)中,然后将此Powershell脚本放入cmd脚本中,然后在启动时运行。将此写入cmd文件:

PowerShell pathToYourScript\yourscript.ps1

答案 1 :(得分:1)

我建议与gazzo相同,但不建议使用powershell,而建议使用git bash等虚拟外壳。当然可以。

由于我们的环境如何工作,我通过git bash使用bash脚本下载git存储库,动态设置项目等。您可以设置运行git bash exe的窗口并传递bash脚本的路径来运行它

答案 2 :(得分:0)

在Powershell中使用:

wsl sh

这将启动wsl子系统,而不仅仅是powershell