簡體   English   中英

如何訪問與批處理文件關聯的原始文件名

[英]How do I access the original file name that is associated a batch file

我創建了自己的文件擴展名,並將該文件擴展名與批處理文件相關聯,這只是假設要調用ruby腳本。 因此,ruby腳本將執行並修改原始文件(Test.jim)。 但是我需要將原始文件的名稱傳遞給ruby腳本,以便它可以訪問它。 我的批處理文件很簡單

ruby batrun.rb %0

但是,這會傳遞批處理文件的名稱/路徑,而不是帶有我的文件擴展名的原始文件。 我如何通過批處理文件。

*編輯

根據要求,這是我如何將文件擴展名與批處理文件關聯

Ftype jimfile="C:\Users\Server\Desktop\File Extension\Jimbat.bat" "%1"
Assoc .jim=jimfile

我只是將其放入批處理文件中,然后運行它。

如果有興趣的人,我會找出解決方法。 由於某些原因,通過批處理文件運行關聯將不允許添加參數。 我完全不知道為什么,但只需輸入完全相同的內容

ftype jimfile="C:\Users\Server\Desktop\FileExtension\Jimbat.bat" %1

進入具有管理訪問權限的cmd會完美

只是為了澄清答案,將在命令提示符處使用以下命令:

 Assoc .jim=jimfile Ftype jimfile="C:\\Users\\Server\\Desktop\\File Extension\\Jimbat.bat" "%1" %* set PATHEXT=.jim;%PATHEXT% 

但在批處理文件中:

 Assoc .jim=jimfile Ftype jimfile="C:\\Users\\Server\\Desktop\\File Extension\\Jimbat.bat" "%%1" %%* set PATHEXT=.jim;%PATHEXT% 

jimbat.bat包含:

 echo ruby batrun.rb %* ruby batrun.rb %* 

筆記:

如果鍵入test.jim abc該命令將與鍵入ruby batrun.rb "C:\\Users\\Server\\Desktop\\File Extension\\test.jim" abc帶引號的test.jim完整路徑(假定目錄相同) 。 您的最新評論表明您正在使用雙引號。 當使用具有擴展名關聯的批處理文件腳本時,通常使用雙引號。 查看ftype輸出,您將看到由於句柄命令行參數的方式,許多程序不使用雙引號。

如果您想要ruby batrun.rb C:\\Users\\Server\\Desktop\\File Extension\\test.jim abcftype將省略雙引號,如ftype /h 您只需要%*即可允許多個參數,否則%1就足夠了。

assocftype進入注冊表並全局應用於Windows。 我注意到測試時,可以清除時assoc從cmd.exe的,但ftype只可以使用注冊表工具不會被刪除ftype命令。

暫無
暫無

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

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