簡體   English   中英

Unix / Windows腳本幫助:將命令行參數從Windows傳遞給Unix

[英]Unix/Windows scripting help: pass command line parameter from Windows to Unix

所以我正在為我的工作做一個開發項目,基本上我的想法是我們有一個Excel VBA宏,需要對文件進行一些解析,創建一個新文件並將文件位置發送到在大型機上運行的Unix腳本。

每次運行宏時文件的位置都不同,多虧了Samba,我可以在Windows中創建文件,Unix系統可以立即訪問它。

現在問題出現了:我怎樣才能傳入文件的位置。 問題是一個名為plink的程序(這是一個putty版本,它允許配置文件與程序本身並行,而不是在PC的注冊表中)是唯一被批准的選項來完成這項工作(我知道Cgywin很容易做到這一點)並且程序位於網絡驅動器上,多人可能需要同時運行它。 authorized_keys文件有一個exec指向需要運行的Unix腳本,出於安全原因,我無法改變它。 但是,我可以在Unix中編寫一個腳本來獲取未命名的參數,並使用它來運行僅將參數(文件位置)作為命名參數(--file = / directory / datafile)的腳本。

我嘗試用(在cmd中)plink.exe serverIP / directory / datafile運行該腳本(已經配置了登錄)但顯然參數無法以這種方式傳遞。

我也試過plink.exe serverIP“/ directory / datafile”,那里也沒有運氣。

我只是想知道是否有一個簡短而巧妙的方法來完成這項工作。 我們有一個具有類似配置的示例項目,但執行此操作的腳本需要10000行,我不想閱讀,我有點認為這應該像一個10或20行的短腳本一樣完成。 如果我需要,我可以自由創建任何Windows腳本,前提是我可以同時運行具有不同參數的程序的多個會話。

您應該能夠使用plink在Unix機器上運行命令,就像在另一台使用ssh的unix機器上運行一個unix命令一樣。 例如

plink user@host "ls"

將在host上運行ls

同樣:

plink user@host "/absolute/path/to/script/on/unix/machine/script.sh"

應該在host上運行script.sh 您可以在本地構建要在unix機器上運行的命令(包括腳本的任何參數,如數據文件的路徑名),然后使用plink運行命令,如上所述。

如果script.sh有參數,並且它們沒有被讀入,請嘗試將腳本名稱和參數放在單引號中:

plink user@host "'/absolute/path/to/script/on/unix/machine/script.sh arg1 arg2'"

您可以查看plink文檔,可在此處找到: http//the.earth.li/~sgtatham/putty/0.62/puttydoc.txt

請特別注意第7.2.2節 - “使用Plink進行自動連接”

暫無
暫無

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

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