Try this:
DECLARE @database_name SYSNAME
DECLARE @iRowCount INT
DECLARE @t_TableNames_Temp TABLE
(table_name SYSNAME)
drop table #file_check
create table #file_check(DBName sysname,MDFFile sysname,LDFFile sysname)
INSERT @t_TableNames_Temp
SELECT name
FROM SYSDATABASES
WHERE name not in ('pubs','northwind','tempdb')
ORDER BY name
--Getting row count from table
SELECT @iRowCount = COUNT(*) FROM @t_TableNames_Temp
WHILE @iRowCount > 0
BEGIN
SELECT @database_name = table_name from @t_TableNames_Temp
exec('use['+@database_name+']
insert #file_check
select '''+@database_name+''',
(select rtrim(filename) from sysfiles where fileid =1 and filename not like ''H:\MSSQL\'+@database_name+'\DATA\'+@database_name+'_Data.mdf''),
(select rtrim(filename) from sysfiles where fileid =2 and filename not like ''I:\MSSQL\'+@database_name+'\LOG\'+@database_name+'_Log.ldf'')
from sysfiles;')
DELETE FROM @t_TableNames_Temp WHERE @database_name = table_name
SELECT @iRowCount = @iRowCount - 1
END
Select * from #file_check
SET NOCOUNT OFF
HTH
MJ