2011-12-11 162 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