
Ich habe ein Node-Projekt, das child_process verwendet, um ein Skript zu starten. Das Skript durchläuft Dateien, konvertiert sie in Bilder, speichert den Pfad zu jeder Datei in einem Array und gibt das Array an den Node zurück. Dann konvertiere ich in eine Zeichenfolge, um sie zu lesen, und erstelle ein console.log, um die Ergebnisse anzuzeigen. Ich erhalte jedoch eine Fehlermeldung:
I/O Error: Couldn't open file `'/mnt/c/localBarcodereader/pdf/calBarcodereader/pdf/[email protected]': No such file or directory.
mv: cannot stat '/mnt/c/localBarcodereader/pdf/calBarcodereader/pdf/[email protected]': No such file or directory`
Ich sehe diesen Fehler nicht, wenn ich ihn auf einem Linux-Server ausführe. Nur wenn ich ihn in Ubuntu für Windows ausführe. Ich habe im Fehler bemerkt, dass der Verzeichnispfad kopiert wird: calBarcodereader/pdf
hier ist mein Skript:
#! /bin/bash
Datum +%F_%T
ndate=
OIFS=$IFS; IFS=$'\n'; array=($(find /mnt/c/localBarcodereader/pdf -type f - size +0b)); IFS=$OIFS for item in "${array[@]}" do
file=$item
file="${file:9}"
fname="${file::-4}"
PATHTOIMG= "/mnt/c/localBarcodereader/pdfimage/${fname}_${ndate}"
if [ ${file: -4} == ".pdf" ]; then
# pdftoppm /mnt/c/localBarcodereader/pdf/[email protected] /mnt/c/localBarcodereader/pdfimage/test -png -f 1 -singlefile -rx 1500 -ry 1500
pdftoppm /mnt/c/localBarcodereader/pdf/$file $PATHTOIMG -png -f 1 -singlefile -rx 1500 -ry 1500
mv /mnt/c/localBarcodereader/pdf/$file /mnt/c/localBarcodereader/pdfarchive
echo $PATHTOIMG
else
mv /mnt/c/localBarcodereader/pdf/$file /mnt/c/localBarcodereader/pdfarchive
fi done
und mein Knotencode:
const cp = require('child_process')
try {
const data = cp.execSync('/mnt/c/localBarcodereader/barcodeScript.sh');
if (data.toString() !== "") {
console.log(data.toString())
Antwort1
Als das Skript auf dem Linux-Server ausgeführt wurde, scheint der Pfadname viel kürzer gewesen zu sein.
Als schnelle Lösung ändern Sie diese Zeile:
file="${file:9}"
dazu:
file="${file:30}"
file
Im Wesentlichen haben Sie die Variable von: geändert .
/mnt/c/localBarcodereader/pdf/[email protected]
Zu:
calBarcodereader/pdf/[email protected]
Als die Absicht bestand, file
sich zu ändern:
[email protected]
Es gibt bessere Möglichkeiten, dies zu tun, und ich werde versuchen, die Antwort etwas später zu überarbeiten (und Ihre Frage neu zu formatieren).