簡體   English   中英

Windows Server 2008命令適用於CMD,但不適用於批處理文件

[英]Windows Server 2008 command works in CMD but not in batch file

我正在嘗試從眾多子文件夾中導出csv(和其他文件)。 這些是將要刪除的存檔文件夾拖放到要加載的數據庫服務器上。 無論如何,我發現有兩行代碼可以工作(或確實可以工作),但是當加載到bat文件中或由xp_cmdshell命令調用時,它們是行不通的。

這些命令旨在提取位於多個(數百個)子目錄中的所有文件。 當我手動將它們放在命令提示符下時,它們又可以工作了,但是當它們從SQL Server通過bat(或cmd文件)或xp_cmdshell調用時卻不能。

for /f "tokens=*" %a in ('dir /b /s /a-d "C:\SPSData\UTDB1_Stage1"') do @move "%a" "C:\SPSData\UTDB1_Stage1"

MOVE C:\SPSData\UTDB1_Stage1\ *\ * C:\SPSData\UTDB1_Stage1\

在批處理文件中使用時,您需要通過以另一個%作為前綴來轉義%變量介紹程序-用%%a代替%a %%a

for /f "tokens=*" %%a in ('dir /b /s /a-d "C:\SPSData\UTDB1_Stage1"') do @move "%%a" "C:\SPSData\UTDB1_Stage1"

我可以想象通過xp_cmdshell進行調用也需要同樣的方法。

暫無
暫無

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

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