0
您好,我希望將以下命令的輸出收集到某個變量中。如何才能做到這一點?Windows批處理編程:將某些命令的數據寫入某個變量
type somefile.txt | find /v "irritating string"
其實我想寫上述命令的輸出到其他文件夾中的其他文件。
您好,我希望將以下命令的輸出收集到某個變量中。如何才能做到這一點?Windows批處理編程:將某些命令的數據寫入某個變量
type somefile.txt | find /v "irritating string"
其實我想寫上述命令的輸出到其他文件夾中的其他文件。
您的命令可能會產生多行輸出。 Windows批處理沒有方便的方法將多行命令輸出捕獲到單個變量中。 FOR/F命令可以用來單獨處理每一行,此時可以將每行連接成一個變量(最大約8191字節值長度限制),或者可以創建一個變量數組。
從命令提示符下輸入FOR /?
或HELP FOR
以獲取有關FOR命令的更多信息。
但是,由於您想要真正捕獲文件中的輸出,因此解決方案非常簡單。
如果你想創建一個新的文件
type somefile.txt | find /v "irritating string" >"c:\somePath\newFile.txt"
如果你想將輸出追加到現有文件
type somefile.txt | find /v "irritating string" >>"c:\somePath\existingFile.txt"
如果該文件不存在,它將被創建。
非常感謝您的回答。可以告訴我如果我希望輸出文件位於其他文件夾中,而不是當前目錄中,該怎麼辦? –
@RajatSaxena - 只需將輸出文件名加上文件夾的路徑即可。我已經用那個微小的變化更新了答案。如果路徑中包含空格,則會有引號。 – dbenham
請不要在意,但如果使用相同的腳本動態生成這個新文件所在的目錄,那麼該怎麼指定路徑呢? –