本站建議搭配 Hover Zoom+ chrome 擴充套件,可自動放大圖片
( 站內文介紹: https://goo.gl/BnBSGa )
網站搜索不是很好用建議使用google底下括號內是範例,整串打進google搜索內;
[ site:https://charlottehong.blogspot.tw/ 你要搜索的內容 ]
2018年4月22日 星期日
2018年4月11日 星期三
PowerShell 批次處理 刪除google雲端硬碟副本下載後產生的副檔名
PowerShell 批次處理 刪除google雲端硬碟副本下載後產生的副檔名
雲端硬碟如果使用建立副本的方式下載就會產生的副本字樣,比如說
原始檔案為
ABC.jpg
產生副本之後
ABC.jpg.jpg 的副本
ABC.jpg
產生副本之後
ABC.jpg.jpg 的副本
下載到windwos之後就不能看到預覽圖了也沒辦法直接播放,需要刪除多餘的副檔名
如何刪除副檔名
批次檔案:下載
沒有加殼,可自行查閱代碼,確認安全
沒有加殼,可自行查閱代碼,確認安全
使用方法
下載放到你要的資料夾,然後按右鍵用poweshell執行,即可。
資料夾可以不用同一層,預設會自動搜尋3層內的。
第一次使用需要開啟功能,使用 Win+X,然後按一下a
開啟powershell視窗,然後輸入
開啟powershell視窗,然後輸入
Set-ExecutionPolicy RemoteSigned
2017年7月20日 星期四
CMD 批次檔 環境變數 長度太長 無法新增
CMD 批次檔 環境變數太長超過 1024 怎麼辦
換個工具吧QuQ,這個真的很惱人。不過還好這個工具從Win7開始就有了不用太擔心支援性。
除非長度限制之外還有一個很討人厭的是,我一直找不到可查看使用者變數的方法,終於讓我找到了,這個指令可以查看使用者的環境變數!
你可以透過cmd 輸入 powershell 啟動,如果不想離開 cmd 就在命令前加上 powershell。比如新命令
Get-Command
則輸入 powershell Get-Command
。然後有 "
前要加斜線。powershell的批次檔結尾是.ps1
環境變數設置與查看
這兩個函式可以用來區別使用者變數與系統變數
你也可以簡化他們為”User”, “Machine”,稍後會看到。
查看環境變數
[environment]::GetEnvironmentVariable("PATH", "User")
[environment]::GetEnvironmentVariable("PATH", "Machine")
還有一個比較簡單的方法
$env:path
設置環境變數
警告,記得先儲存自己的環境變數!儲存方法如下,幫你存到桌面。
cd ~;[environment]::GetEnvironmentVariable("PATH", "User") > Desktop/PATH_User.txt
cd ~;[environment]::GetEnvironmentVariable("PATH", "Machine") > Desktop/PATH_Machine.txt
設置環境變數
[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";C:bin", "User")
[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";C:bin", "Machine")
這個黑科技可以擺脫2048限制了,不過環境變數還是有總長度限制,能省則省。
還有一點就是,他終於有防呆了!不會新增重複的,自動避免新增一樣的環境變數。
還有一點就是,他終於有防呆了!不會新增重複的,自動避免新增一樣的環境變數。
cmd批次檔寫法如下
@Echo Off
Title AddPath - By:Charlotte.HonG
:: Date :2016/05/28
:: Final :2017/07/20
::===========================================================
::確認是否為管理員權限
call :IsAdmin
set appPATH=%~dp0bin
powershell [System.Environment]::SetEnvironmentVariable(\"PATH\", $Env:Path + \";%appPATH%;\", \"Machine\")
::===========================================================
Exit
:IsAdmin
@Echo Off
Reg.exe query "HKU\S-1-5-19\Environment"
If Not %ERRORLEVEL% EQU 0 (
Cls
Echo [權限不足] 需使用管理員權限開啟
Pause & Exit
)
goto:eof
參考
使用 cmd or powershell 列出當前目錄檔案或特定副檔名
使用 cmd or powershell 列出當前目錄檔案或特定副檔名
這裡提供cmd與powershell兩個方法,另外如果要在cmd下執行powershell命令在最前方加入
powershell
指令即可。須注意日文檔名的儲存的txt檔案,程序要讀檔會比較麻煩,能不用就不要用比較好。
CMD
列出當前檔案
dir "*.lib"
輸出到文件
dir "*.lib" /b /on > "Lib_Lists.txt"
日文檔名使用cmd /u /c dir /b /on >list.txt
移動文件
MOVE %FILENAME% %LISTPATH%
批次檔
獲得
指定目錄
lib資料夾內的所有 .lib 檔案清單,並儲存到 批次檔所在目錄
::@Echo Off
Title CreatList - By:Charlotte.HonG
set FILENAME="Lib_Lists.txt"
set FILEPATH="lib"
set LISTPATH=%~dp0
cd %FILEPATH%
dir *.lib /b /on > %FILENAME%
MOVE %FILENAME% %LISTPATH%
powershell
$file=Get-ChildItem -Recurse -include "*.lib"
set-content $file.name -path Lib_List.txt
日文檔名則在第二行結尾增加
-Encoding Unicode
2017年6月4日 星期日
批次檔 bat 如何輸出當前目錄檔案名稱到文件.txt 內
CMD 讀取指定
檔案名稱與打印
使用 dir
dir /b /on >list.txt
再來是讀取檔案使用for迴圈一行一行讀出來
@echo off
for /f "tokens=*" %%i in (list.txt) do (
echo %%i
)
其中 “tokens=*” 是關鍵如果讀取的文字檔中有空白,不加會讀不到
詳細可以參考:Re: [問題] bat檔判斷ini內容
詳細可以參考:Re: [問題] bat檔判斷ini內容
日文處理
如果有日文會亂碼,加一些指令使用UTF-8存檔
cmd /u /c dir /b /on >list_UTF8.txt
這樣輸出是正常的,不過日文字體用內建的記事本開啟可能會有問題,需要其他支援的軟件來開啟。(如 SublimeText);
最悲劇的是…使用UTF-8存檔會導致bat無法讀取,貌似沒救了找不到什麼解。
powershell
後來又花了幾小時改用 powershell 這個真的有點神
附檔名是 ps1 預設打開會是記事本,在CMD輸入指令改由直接啟動
附檔名是 ps1 預設打開會是記事本,在CMD輸入指令改由直接啟動
ftype Microsoft.Powershellscript.1="%SystemRoot%\system32\windowspowershell\v1.0\powershell.exe" "%1"
新版的win10初始設定會限制是不能執行腳本的,需要打開權限在 powshell 輸入
Set-ExecutionPolicy RemoteSigned
回答是就可以正常執行了
先創一個讀檔的
Function Read_File($ex_name){
$file=Get-ChildItem -Recurse -ErrorAction SilentlyContinue -Filter *$ex_name |
Where-Object { $_.Extension -eq $ex_name }
return $file
}
然後直接使用
$file=Read_File '.jpg'
印出就直接打就好了
$file
印出來會一團東西加個
$file.Name # 保留檔名
$file.BaseName # 去除附檔名
他會特麼很神的直接變成陣列
$file.Name # 印出全部
$file.Name [0] # 印出第一個
$file.Name [-1] # 印出最後一個
怎麼這麼神奇,果斷放棄bat QuQ
接下來for迴圈可以上場了,一個一個處理
# 複製至資料夾內
ForEach($item in $file){
mkdir $item.BaseName -ErrorAction SilentlyContinue
Copy-Item $item.Name $item.BaseName
# Remove-Item $item.Name
}
$item就是當前檔案名稱了,他會挨個輪過一次,這裡我是要把它放入資夾內。
比如說有個檔案是 123.jpg 我要放到 123/123.jpg 內。
比如說有個檔案是 123.jpg 我要放到 123/123.jpg 內。
其他參數
回頭來說一下剛剛一團函式
Get-ChildItem
印出當前目錄檔案
Recurse
這個貌似是讀子目路
-ErrorAction
略過警告比如說移動檔案時問你要不要覆蓋,SilentlyContinue是他的附帶參數(安靜的繼續)
-Filter *$ex_name
第一階段過濾出擴展名(副檔名),不過能力有限,假設過濾圖檔.jpg.jpg這樣會一起進來
Where-Object { $_.Extension -eq $ex_name }
補足上一個問題 $_ 指的是當前的緩存物件,這裡有指名(給名字)是$file
輸出到文本
兩行就可以解決了,如果要寫成一行中間加個分號隔開即可,後面選定Unicode才可以支持中文、日文、韓文等等會出狀況的文字。
$file=Get-ChildItem
set-content $file -path list.txt -Encoding Unicode
如果是要在CMD環境下使用可以使用(不過前提是系統支援)
powershell $file=Get-ChildItem; set-content $file -path list.txt -Encoding Unicode
如果想換個位置的話,比如說我目前在使用者目錄,但工作目錄不想cd切過去桌面(這裡輸入的目錄也可以改成絕位置)
$file=Get-ChildItem -path Desktop
set-content $file -path Desktop/list.txt -Encoding Unicode
查找函式
要查找函式可以透過這樣的方式知道有哪些方法可以用
Get-ChildItem $FilenNme | format-list *
另外獲取目錄後來發現一個比較簡單的用法
$file=Get-ChildItem -Recurse -include "*.jpg"
2017年2月21日 星期二
如何讓 Windows10 8 預設為英文輸入法 [或CMD預設為英文]
如何讓 Windows10 8 預設為英文輸入法 [或CMD預設為英文]
這其實是預設輸入法的問題而已Win10預設是中文輸入法其實很不方便
更改兩項設定即可讓系統預設都是英文輸入法了。
更改兩項設定即可讓系統預設都是英文輸入法了。
讓新注音輸入法 - 預設為英文
但這僅可以保證重新開機時一開始是英文輸入法而已,無法避免在別人的程序切為中文後切回來之後也變成中文了。
想像一個場景你現在開著終端機用英文輸入指令,突然想不起某個指令怎麼用,於是打開chrome切到中文輸入法打中文搜尋,這時候你切回來終端機的時候就變回英文了。
要解決這個問題就是要把輸入法分開,不要讓他用單一個狀態表示全部程序。
分開輸入法
Win10 改版之後設定變了這邊保留舊版與新板說明
Win10 1803
Win10 1803 以前(不包含)
完結
接下來開啟任何程式都可以保證是英文輸入法了
2016年10月8日 星期六
如何利用 [CMD 批次檔 .bat] 設定環境變數 永久與暫時
如何利用 [CMD 批次檔 .bat] 設定環境變數 永久與暫時
這裡將會實際做一個自動安裝JAVA的批次檔 add-java-path.bat
並讓他自動設定系統環境變數或使用者環境變數,的批次檔當範例
並讓他自動設定系統環境變數或使用者環境變數,的批次檔當範例
批次檔需要放置JAVA目錄底下執行
設定暫時變數
@echo off & Title JAVA_PATH By Charlotte.HonG& Color 1A
set "PATH=%~dp0jdk1.8.0_101\bin;%PATH%"
exit /b
這只對當前環境中的變數 PATH 修改而已,沒有實際修改到系統。1. 雙引號的位置要包含到變數。
2. %~dp0 指的是當前批次檔的所在位置。
3. 追加的路徑寫在 %PATH% 前優先級會比較高。
設定永久變數
新增至環境變數
@echo off & Title JAVA_PATH By Charlotte.HonG& Color 1A
set str=%PATH%;%~dp0jdk1.8.0_101\bin
setx /m PATH "%str%"
exit /b
新增至自定義變數
@echo off & Title JAVA_PATH By Charlotte.HonG& Color 1A
set str=%~dp0jdk1.8.0_101
setx /m JAVA_HOME "%str%"
exit /b
%PATH% 是舊有的環境變數,/m 是系統
小技巧
所以更改後如果軟體在這之前就開啟了
軟體必須重啟才能套用
範例
利用一個批次檔安裝
需要使用
Java
並在安裝完畢執行一個需要使用
Java
變數的軟體,比如說 Android Studio
分析給你看會出什麼意外
開啟bat時環境並沒有java的變數
利用批次檔安裝
利用批次檔安裝
Java
並新增永久變數
此時該批次檔還是沒有
於是你用他開啟
Java
的變數必須等到重啟才有於是你用他開啟
Android Studio
繼承該bat的環境變數啟動失敗
-
解決辦法就是暫時變數與永久變數一起修改
行查看環境變數
想要一行一行查看環境變數可以使用
ECHO.%PATH:;= & ECHO.%
問題
批次檔1024長度限制
環境變數超出1024字元會出問題,因為批次檔的關係最長支援到2048,實際上手動到系統內設置是可以超過1024的。
解決方案用 Powershell
cmd我也找不到什麼好方法,我們還是使用現代工具來解決;這個其實從Win7就開始有了,不用太擔心支援度的問題,只是幾乎沒怎麼被廣泛利用。到了Win10 1704版微軟才強制推行。
使用方法可以直接在開始搜索 PowerSehll 點擊執行,或直接在 CMD 中輸入也可以。
詳情請看站內連結:https://charlottehong.blogspot.tw/2017/07/cmd-2048.html
詳情請看站內連結:https://charlottehong.blogspot.tw/2017/07/cmd-2048.html
訂閱:
文章 (Atom)