2013-05-07 65 views
0

我使用Windows XP並編寫了一個簡單的bat文件,用於從網站下載XML,然後重命名xml文件,以便它們都具有.zip擴展名,但對於某些原因,它不會重命名文件。下面是使用BRC32無法工作的代碼行,它在Windows中執行REGEXP似乎很麻煩。在Windows bat文件中使用regexp與BRC32重命名實用程序

.\software\BRC32 /DIR: /REGEXP:.*%22(.*)%22:\1.zip /EXECUTE 

File Name: [email protected]_stds=all&down_typ=results&cond=%22Aicardi Syndrome%22 

Desired result: [email protected]_stds=all&down_typ=results&cond=%22Aicardi Syndrome%.zip 

我使用BRC32.exe實用工具,還使用了pcre.dll 3.9版做的bat文件的REGEXP,但由於某種原因,我只是得到,說文件不能被重命名錯誤。有沒有人有任何洞察到這個問題>?

+1

這真的是文件名嗎? '&'不是合法的文件名字符。在任何情況下,如果命令從命令行運行,而不是從批處理文件運行,則批處理文件中的變量替換可能是罪魁禍首 - 將%var更改爲%% var。有這樣一個原因,我不記得 – 2013-05-07 17:16:15

+0

從%到%%的簡單變化修復它哇,謝謝我在這一段時間我的頭痛。因爲它的確形成了commnad行,但不是我的scipt。謝謝! – swingard 2013-05-07 17:20:01

+2

@Ben - 呃,'&'肯定是一個有效的文件名字符。對於這個問題,'%'也是。和'^'。還有'(;)'。所有非常難以批量處理。最好避免 - 但有些人堅持使用它們... – Magoo 2013-05-07 17:25:12

回答

1

在固定我的問題

+0

你應該接受彼得的答案。 – 2013-05-07 18:01:05

0

既然你不說BRC32' 語法是什麼,我會在/REGEXP:.*%22(.*)%22:\1.zip部分進行推測腳本改變「%」爲「%%」。

如果解析器不反對%22(,*)%它可能會解析爲[無]。

如果你真的想捅%作爲參數字符,然後嘗試因爲%逃脫%加倍%秒。

但是,22也看起來好像"給我。可能你可以用"代替%22 - 但是不知道參數究竟是什麼意思,很難提供建議。

."(.*)"\1.zip看起來很奇怪的太...

0

是的。增加另一個%符號修復它。該死的我覺得很蠢

相關問題