簡體   English   中英

如何在 Windows10 啟動時運行 .sh 文件

[英]How to run .sh file on Windows10 startup

啟動 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 中運行時出現錯誤。 語法錯誤和解析錯誤。 喜歡:

在 line:1 char:3 + if [ -d $sortingFolder ] + ~ Missing '(' after 'if' in if 語句。在 line:1 char:5 + if [ -d $sortingFolder ] + ~ Missing type name after '['. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException +fullyQualifiedErrorId : MissingOpenParenthesisInIfStatement

可能有點復雜,但它有效:您可以使用以下命令在 powershell 中運行 sh 腳本

sh yourShScript

您可以將此命令放在一個powershell 腳本文件(例如yourScript.ps1)中,然后將此powershell 腳本放在一個cmd 腳本中,然后您可以在啟動時運行該腳本。 在 cmd 文件中寫入:

PowerShell pathToYourScript\\yourscript.ps1

我建議使用與 gazzo 相同的方法,但不建議使用 powershell,而是使用諸如 git bash 之類的虛擬 shell。 當然可以的話。

由於我們的環境在工作中的設置方式,我通過 git bash 使用 bash 腳本來下載 git 存儲庫、動態設置項目等。您可以設置 Windows 來運行 git bash exe 並傳入您的 bash 腳本的路徑來運行它。

在 powershell 中使用:

wsl sh

這將啟動 wsl 子系統,而不僅僅是 powershell

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM