启动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
答案 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