2017-05-31 86 views
4

在我的Windows機器上,我有一個小腳本(.bat)來啓動一些我用於普通工作的程序,例如Word,Outlook,某個Excel文件等。如何在Windows批處理文件中指定名稱中包含特殊字符的本地文件或類似ä,ö,ü的路徑?

一個未解決的問題是我無法指定存儲在本地文件夾中的某個Excel文件,因爲該文件夾的名稱中包含特殊字符(德語u-umlaut,即ü)。喜歡的東西:

C:\Büroeinrichtung\MyExcelFile.xlsx 

在我的劇本我試着通過

Start "" "C:\Büroeinrichtung\MyExcelFile.xlsx" 

但上運行的腳本來調用這個,我得到一個警告,表明ü不被接受(其中ü被一些替代屏幕上還有更多奇特的標誌)。

我可以通過替換ü或其他任何方法來改變文件夾名稱,但我寧願使用一種解決方案來允許我的現有文件夾名稱保持不變。

在這裏找不到解決其他問題的問題。

有沒有解決方案? PS:我使用記事本+ + +。

後來增加:有一個後續問題仍然困擾着我(儘管最初的問題已經解決)。它是關於使用腳本內的chcp命令以編程方式更改代碼頁的方法。 See the question here

+2

看看[CMD無法讀取丹麥字符時,我執行.bat文件](https://stackoverflow.com/questions/43046559/)。這是相同的文本編碼問題。您使用[Windows-1252](https://en.wikipedia.org/wiki/Windows-1252)在Notepad ++中編寫了批處理文件,但是在控制檯代碼頁[OEM 850](https://en.wikipedia)中。 org/wiki/Code_page_850)默認情況下使用德語在Windows區域和語言設置中設置。與Windows-1252相比,這些變音器在OEM 850中具有不同的代碼值。 – Mofi

回答

3

問題是不同的字符集:ANSI和ASCII。存在不同的解決方案:

  • 使用其他編輯器可以更改字符集。
  • 使用提示並將Umlaut複製到您的編輯器。
  • 使用CMD,轉到您的目錄並使用dir/x從Büroeinrichtung獲取短名稱並在DOS腳本中使用它。
+1

如果cmd連接到控制檯,批處理文件將使用控制檯的代碼頁逐行解碼。如果保存在ANSI中,則必須臨時更改控制檯,以便通過'chcp.com [codepage number]'在相關行的周圍使用ANSI代碼頁。控制檯的默認值是OEM代碼頁。 – eryksun

+0

@eryksun謝謝。我怎樣才能找出我需要設置的代碼頁號碼?之後我會不得不扭轉這種情況? –

+0

沒有BOM的UTF-8也是一種選擇,但控制檯與代碼頁65001相關,因此我會將所有非ASCII字符串放在臨時切換到代碼頁65001的部分中,以將字符串加載爲環境變量,此時它們是以cmd爲單位的Unicode,然後切換回OEM。 – eryksun

相關問題