![](/img/trans.png)
[英]How to delete N files of X type from Y subfolders from a Windows batch file?
[英]How to answer yes to a (Y/N) [N] prompt to delete a mapped network drive in a batch script on Windows?
在執行了幾個命令后,我想從Windows上的批處理文件中自動刪除映射的網絡驅動器。
這是我的腳本:
myscript.bat :
net use X: \\myserver\myfolder
pushd X:
dir
net use X: /delete
列出文件后,將提示以下消息:
Is it OK to continue disconnecting and force them closed? (Y/N) [N]:
然后腳本等待用戶手動輸入。 我努力了
echo y | net use X: /delete
但顯示以下消息
No valid response was provided.
腳本再次等待用戶手動輸入。
您已將共享映射到驅動器( X:
,然后更改為該驅動器。 當您嘗試取消映射時,Windows警告您正在嘗試取消映射當前驅動器。 這就像站在用鏈鋸的樹枝上,轉過臉面對樹干,然后開始切斷您所站在的樹枝,而Windows告訴您確認您確實要這樣做並跌倒了。死亡。 :-)停止嘗試切斷您正站在的分支。 只需popd
回到您嘗試取消驅動器映射之前的起點,就不會出現提示。
net use X: \\myserver\myfolder
pushd X:
dir
popd
net use X: /delete
這未經測試,但是您根本不需要使用net use
, 如果尚未准備好驅動器, 則 PushD
單獨應該臨時映射驅動器,而PopD
會取消映射該臨時映射。
給定您的問題代碼,您需要做的只是:
@PushD "\\myserver\myfolder" 2>NUL || Exit /B
@Dir
@PopD
如果您使用注釋中提到的For
命令而不是Dir
命令,則解決方案完全相同:
@PushD "\\myserver\myfolder" 2>NUL || Exit /B
@For %%A In (*.svg)Do @"%ProgramFiles%\Inkscape\inkscape.exe" -d 85.33 -z "%%A" -e "%%~nA.png"
@PopD
在這兩種情況下,如果沒有其他命令可以執行,則可以省略@PopD
行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.