我寫了一個bat要將拖曳的全部項目壓成一個壓縮檔
當遇到unicode路徑時可能會發生問題
因為產生的 listfile.txt 是ANSI編碼,有些字元會變成亂碼
求大大們賜教


------------------------------------------------------------
已解決

@echo off

set a=%~dp0\7zG.exe

if "%~1"=="" goto end

set listfile=%~dp1%listfile.txt

if not "%~2"=="" goto Multi
set output_file=%~dp1%~n1.7z
goto CreateList
:Multi
for %%a in ("%~f1\..") do (
set output_file=%~dp1%%~nxa.7z
)

:CreateList
chcp 65001
:LOOP
if "%~1"=="" goto Window
echo "%~1" >> "%listfile%"
shift /1
goto LOOP

:Window
"%a%" a -ad "%output_file%" @"%listfile%" -scsUTF-8

del "%listfile%"

:end
請你在7-zip的說明裡頭在搜尋裡打unicode,7-zip預設不是unicode處理。
參數:-scs{UTF-8 | WIN | DOS},請改成UTF-8

listfile.txt裡頭要unicode編碼,再配合-scsUTF-8才能有效,

ultraedit有ANSI轉UTF8的功能,請試試看。
王牌大騙子 wrote:
請你在7-zip的說明裡頭在搜尋裡打unicode,7-zip預設不是unicode處理。
參數:-scs{UTF-8 | WIN | DOS},請改成UTF-8...(恕刪)

因為自動產生的 listfile.txt 是ANSI編碼,所以才用 -scsWIN

王牌大騙子 wrote:
ultraedit有ANSI轉UTF8的功能,請試試看。

不自動產生 UTF8 編碼的 txt 就沒意義了

目的只是要將拖曳的全部項目壓成一個壓縮檔
能達到相同結果,不使用 listfile.txt 也無所謂
但還是想知道 bat 能否產生 UTF8 編碼的 txt 檔

除了"建個新資料夾將要壓縮的項目丟進去後對此資料夾壓縮"以外
因為不要搬移任何檔案
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
plusv wrote:
可以.螢幕錄影:附加...(恕刪)


感謝大大賜教
但這似乎無法用於我的目的上
僅將選取項目的路徑("%~1"、"%~2"、"%~3"......) 寫入 utf-8 編碼的 txt

能否將 "%~1" 的 unicode 路徑寫入 utf-8 編碼的 txt 內
下列命令只能 "%~1" 之值插入ANSI編碼的txt內
echo "%~1" >> listfile.txt

kingdragon wrote:
能否將 "%~1" 的 unicode 路徑寫入 utf-8 編碼的 txt 內


可以.

螢幕錄影:(6 處都可以下載,任選 1 處下載即可)

http://www.multiupload.com/8HDJRQAX0C
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
plusv wrote:
可以. 螢幕錄影:(...(恕刪)

問題解決了,感激不盡!

大大似乎忘了給指令
還好畫面上有瞬間閃過線索訊息
被 MS 給騙了,
原來 CHCP 只是掛羊頭賣狗肉的障眼法而以.

只修改 OS CHCP 顯示部份:

☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!