2011-12-11 413 views
1

我爲我的媒體服務器組合了一個腳本。我需要運行目錄中的所有 文件,然後在另一個文件夾中創建軟鏈接以充當視頻播放列表。我剛剛開始,我已經有我的批處理腳本問題創建軟鏈接

@echo off 
SetLocal EnableDelayedExpansion 

set TV="G:\TV" 

FOR /R %TV% %%G in (.) DO (
Pushd %%G 
Echo now in %%G 

for /f %%f IN ("dir /b") do (
    Echo %%f 
) 

Popd) 
Echo "back home" 
) 

這生成一個列表的每個文件,但文件名空格後切出!它看起來像這樣:

now in G:\TV\UCB\UCB Season 3\. 
Upright 
Upright 
Upright 
Upright 
... 
now in G:\TV\Venture Bros\Season 3\. 
File Not Found 
now in G:\TV\Venture Bros\Season 4\. 
The.Venture.Bros.S04E03.HDTV.XviD-2HD.avi 
The.Venture.Bros.S04E04.HDTV.XviD-2HD.avi 
The.Venture.Bros.S04E05.HDTV.XviD-2HD.avi 

我能做些什麼來解決這個問題?一旦我有了這個文件,應該很容易創建一個軟鏈接。

+0

我認爲這個(批量編程)屬於超級用戶。 –

+0

你應該修改你的FOR/F-循環爲'FOR/F「delims =」',因爲標準分隔符是'space'和'tab' – jeb

+0

我只需要添加「delims =」嗎?裏面有什麼? –

回答

0

只需添加引號圍繞您的文件名稱:

Pushd "%%G" 
+0

需要什麼其他地方? –

+0

沒有運氣,得到相同的結果只是用引號 –

0

你可以更換一個簡單的oneliner FOR循環所有BAT。

FOR /R G:\TV %%f in (*) do echo create soft link for %%f