2011-07-18 53 views
2

我在Windows 7桌面上使用plink在Windows 2008服務器上創建文件夾。 服務器使用pragmaSSH來允許SSH連接,並且一切正常。帶空格的Plink cmd.exe mkdir不起作用

我想創建的目錄中有一個空間,這是我的問題開始的地方。

我有一個基本的plink命令是這樣的

plink.exe -i privatekey.ppk [email protected] cmd.exe /c mkdir "c:\asdfasdf" 

,但改變這種命令失敗。所以這個空間肯定是我的問題。

plink.exe -i privatekey.ppk [email protected] cmd.exe /c mkdir "c:\asdf asdf" 

我試圖以任何可能的方式逃避這一切,我可以想出來,總是得到與空間相同的問題。

確定60000次嘗試後,我想出瞭如何將引號傳遞給服務器。

plink.exe -i privatekey.ppk useryserver MKDIR \\ 「」 「C:\ ASF ASF \\」 「」

和發送每一側上的1個報價和運行的命令作爲mkdir「c:\ asf asf」

+0

- 什麼是每一個可能的方式,你能想到的? – Joey

回答

2

這些引用足以逃避plink的命令,該命令不足以在另一端再次引用(合理的,因爲它無法知道奇怪的shell可能在那裏運行) 。

所以,你需要以下條件:

plink.exe -i privatekey.ppk [email protected] cmd.exe /c mkdir "\"c:\asdf asdf\"" 
+0

也提供了相同的問題,它試圖仍然創建asdf文件夾。子目錄或文件c:\ asdf已存在。 處理中發生錯誤:c:\ asdf。 子目錄或文件asdf已經存在。 處理中發生錯誤:asdf。 – johnnydeluxable

+0

@johnnydeluxable:可能的話,不同的情況下應該採用不同的方式來轉義引號。其中一個是在@喬伊的回答中,其他人則是:'「^」c:\ asdf asdf ^「」','「」「c:\ asdf asdf」「」'。 –

+0

也可能整個'mkdir'命令(包括參數)都應該用雙引號引起來,同時轉義文件夾名稱周圍的雙引號。 –