У меня есть php-код, который будет проходить через мою папку с файлами и одновременно редактировать мой vbscript. Мой код работает, но не так, как я ожидал.
Вот содержимое моих папок :
Вот мой код сценария VB :
Option Explicit Dim oFSO, myFolder Dim xlCSV myFolder= "C:/Users/user/Desktop/SampleFolders/20170503/Users/user/Desktop/SampleFolders/20170502/Users/user/Desktop/SampleFolders/20170501" Set oFSO = CreateObject("Scripting.FileSystemObject") xlCSV = 6 'Excel CSV format enum Call ConvertAllExcelFiles(myFolder) Set oFSO = Nothing
Я хочу, чтобы переменная myFolder была только:
myFolder= "C:/Users/user/Desktop/SampleFolders/20170503"
так как он уже перебирает все папки, и это должен быть мой последний вывод.
Можете ли вы дать мне намеки на это? Я думаю, что это имеет какое-то отношение к моей петле, но я не могу найти, где я ошибаюсь.
Вот мой php-код :
$path = "C:/Users/user/Desktop/SampleFolders"; if ($handle = opendir($path)) { while (false !== ($file = readdir($handle))) { if ('.' === $file) continue; if ('..' === $file) continue; // Read file into array $data = file('C:/Users/user/Desktop/changecsv.vbs'); // This is the location we want $newLocation = "C:/Users/user/Desktop/SampleFolders/$file"; // Read each line and try to find the myFolder string $data = array_map(function($line) use ($newLocation) { // If we have myFolder make sure it's followed by a path of some kind, capture // this path into $matches preg_match('/myFolder="([A-Za-z:.\\\\]+)/', $line, $matches); // Replace old path with new path if (count($matches)) { $line = str_replace($matches[1], $newLocation, $line); } return $line; }, $data); // Replace contents of file with new location file_put_contents('C:/Users/user/Desktop/changecsv.vbs', implode('', $data)); } echo "editted"; closedir($handle);